explain.depesz.com

PostgreSQL's explain analyze made readable

Result: rDp5

Settings
# exclusive inclusive rows x rows loops node
1. 134.050 7,624.051 ↑ 1.1 35,762 1

Hash Join (cost=61,384.22..100,609.40 rows=37,956 width=256) (actual time=6,013.009..7,624.051 rows=35,762 loops=1)

  • Hash Cond: (m0_.user_id = m1_.id)
2. 1,702.910 1,702.910 ↑ 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.016..1,702.910 rows=925,454 loops=1)

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

Hash (cost=60,990.85..60,990.85 rows=31,469 width=4) (actual time=5,787.091..5,787.091 rows=37,839 loops=1)

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

Bitmap Heap Scan on md_user m1_ (cost=674.99..60,990.85 rows=31,469 width=4) (actual time=79.835..5,773.915 rows=37,839 loops=1)

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

Bitmap Index Scan on idx_user_updatedat (cost=0.00..667.12 rows=31,469 width=0) (actual time=68.153..68.153 rows=38,231 loops=1)

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