explain.depesz.com

PostgreSQL's explain analyze made readable

Result: nFkI

Settings

Optimization(s) for this plan:

# exclusive inclusive rows x rows loops node
1. 0.000 0.000 ↓ 0.0

Limit (cost=33,045.17..33,045.17 rows=1 width=2,171) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=33,045.17..33,045.17 rows=1 width=2,171) (actual rows= loops=)

  • Sort Key: receipts.contribution_amount DESC
3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=203.70..33,045.16 rows=1 width=2,171) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=203.29..33,040.23 rows=1 width=1,891) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=202.87..33,035.30 rows=1 width=1,687) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=202.45..33,030.36 rows=1 width=1,415) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=202.03..33,025.44 rows=1 width=1,211) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=201.60..32,363.18 rows=133 width=869) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=201.17..31,648.55 rows=143 width=816) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.83..17.97 rows=1 width=476) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Index Scan using ix_committees_super_committee_id on committees committees_1 (cost=0.42..9.53 rows=1 width=204) (actual rows= loops=)

  • Index Cond: (super_committee_id = 47823)
  • Filter: (id = ANY ('{131597,131596,131595}'::integer[]))
12. 0.000 0.000 ↓ 0.0

Index Scan using super_committees_pkey on super_committees super_committees_1 (cost=0.41..8.43 rows=1 width=272) (actual rows= loops=)

  • Index Cond: (id = 47823)
13. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on receipts (cost=200.33..31,553.70 rows=7,688 width=340) (actual rows= loops=)

  • Recheck Cond: (recipient_committee_id = committees_1.id)
  • Filter: (donor_individual_id IS NOT NULL)
14. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on ix_receipts_recipient_committee_id (cost=0.00..198.41 rows=8,246 width=0) (actual rows= loops=)

  • Index Cond: (recipient_committee_id = committees_1.id)
15. 0.000 0.000 ↓ 0.0

Index Scan using ix_individual_matches_individual_id on individual_matches (cost=0.43..5.00 rows=1 width=53) (actual rows= loops=)

  • Index Cond: (individual_id = receipts.donor_individual_id)
16. 0.000 0.000 ↓ 0.0

Index Scan using super_individuals_pkey on super_individuals (cost=0.43..4.98 rows=1 width=342) (actual rows= loops=)

  • Index Cond: (id = individual_matches.super_individual_id)
  • Filter: ((employer_tsvector @@ '''facebook'':*'::tsquery) OR (employer_tsvector @@ '''google'':*'::tsquery))
17. 0.000 0.000 ↓ 0.0

Index Scan using committees_pkey on committees committees_2 (cost=0.42..4.93 rows=1 width=204) (actual rows= loops=)

  • Index Cond: (receipts.donor_committee_id = id)
18. 0.000 0.000 ↓ 0.0

Index Scan using super_committees_pkey on super_committees super_committees_3 (cost=0.41..4.93 rows=1 width=272) (actual rows= loops=)

  • Index Cond: (committees_2.super_committee_id = id)
19. 0.000 0.000 ↓ 0.0

Index Scan using committees_pkey on committees committees_3 (cost=0.42..4.93 rows=1 width=204) (actual rows= loops=)

  • Index Cond: (receipts.conduit_committee_id = id)
20. 0.000 0.000 ↓ 0.0

Index Scan using super_committees_pkey on super_committees super_committees_2 (cost=0.41..4.93 rows=1 width=272) (actual rows= loops=)

  • Index Cond: (committees_3.super_committee_id = id)