explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ixny : Character

Settings

Optimization(s) for this plan:

# exclusive inclusive rows x rows loops node
1. 131.322 657.953 ↑ 1.1 35,762 1

Hash Join (cost=61,363.65..100,588.65 rows=37,933 width=256) (actual time=127.694..657.953 rows=35,762 loops=1)

  • Hash Cond: (m0_.user_id = m1_.id)
2. 446.593 446.593 ↑ 1.0 925,454 1

Seq Scan on md_character m0_ (cost=0.00..35,459.46 rows=928,639 width=256) (actual time=0.014..446.593 rows=925,454 loops=1)

  • Filter: (type = ANY ('{customer,guest}'::charactertypeenum[]))
  • Rows Removed by Filter: 102169
3. 8.014 80.038 ↓ 1.2 37,839 1

Hash (cost=60,970.53..60,970.53 rows=31,450 width=4) (actual time=80.038..80.038 rows=37,839 loops=1)

  • Buckets: 65536 (originally 32768) Batches: 1 (originally 1) Memory Usage: 1843kB
4. 62.970 72.024 ↓ 1.2 37,839 1

Bitmap Heap Scan on md_user m1_ (cost=674.80..60,970.53 rows=31,450 width=4) (actual time=10.846..72.024 rows=37,839 loops=1)

  • Recheck Cond: ((updatedat >= (now() - '10 days'::interval)) AND (updatedat <= (now() + '10 days'::interval)))
  • Heap Blocks: exact=11763
5. 9.054 9.054 ↓ 1.2 38,163 1

Bitmap Index Scan on idx_user_updatedat (cost=0.00..666.93 rows=31,450 width=0) (actual time=9.053..9.054 rows=38,163 loops=1)

  • Index Cond: ((updatedat >= (now() - '10 days'::interval)) AND (updatedat <= (now() + '10 days'::interval)))