explain.depesz.com

PostgreSQL's explain analyze made readable

Result: xWb

Settings
# exclusive inclusive rows x rows loops node
1. 155.032 630.760 ↓ 1.0 2,789 1

HashAggregate (cost=1,226.11..1,253.99 rows=2,788 width=109) (actual time=612.633..630.760 rows=2,789 loops=1)

  • Group Key: mailboxes.id, mailboxes.address, mailboxes.mpi_key, mailboxes.applied_rule_id, mailboxes.slug, mailboxes.discarded_at, mailboxes.created_at, mailboxes.updated_at
2. 246.081 475.728 ↓ 3.0 19,651 1

Hash Join (cost=256.22..1,095.09 rows=6,551 width=109) (actual time=109.781..475.728 rows=19,651 loops=1)

  • Hash Cond: (mailbox_applied_rule_transitions.mailbox_id = mailboxes.id)
  • Join Filter: (mailbox_applied_rule_transitions.id > mailbox_provider_instances.mailbox_rule_sync_delta_token)
3. 119.898 119.898 ↑ 1.0 19,651 1

Seq Scan on mailbox_applied_rule_transitions (cost=0.00..519.52 rows=19,652 width=16) (actual time=0.008..119.898 rows=19,651 loops=1)

4. 18.758 109.749 ↓ 1.0 2,791 1

Hash (cost=221.37..221.37 rows=2,788 width=113) (actual time=109.743..109.749 rows=2,791 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 458kB
5. 36.551 90.991 ↓ 1.0 2,791 1

Hash Join (cost=106.16..221.37 rows=2,788 width=113) (actual time=36.366..90.991 rows=2,791 loops=1)

  • Hash Cond: ((mailboxes.mpi_key)::text = (mailbox_provider_instances.key)::text)
6. 18.120 18.120 ↓ 1.0 2,791 1

Seq Scan on mailboxes (cost=0.00..76.88 rows=2,788 width=109) (actual time=0.013..18.120 rows=2,791 loops=1)

7. 18.402 36.320 ↑ 1.0 2,718 1

Hash (cost=72.18..72.18 rows=2,718 width=25) (actual time=36.315..36.320 rows=2,718 loops=1)

  • Buckets: 4096 Batches: 1 Memory Usage: 192kB
8. 17.918 17.918 ↑ 1.0 2,718 1

Seq Scan on mailbox_provider_instances (cost=0.00..72.18 rows=2,718 width=25) (actual time=0.010..17.918 rows=2,718 loops=1)