explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 2QsO

Settings

Optimization(s) for this plan:

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

Limit (cost=202.19..201,023.14 rows=5 width=340) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop Semi Join (cost=202.19..201,023.14 rows=5 width=340) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=200.89..187,786.03 rows=921 width=340) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Index Scan using ix_committees_super_committee_id on committees (cost=0.42..9.51 rows=6 width=4) (actual rows= loops=)

  • Index Cond: (super_committee_id = 47823)
5. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on receipts (cost=200.47..31,213.63 rows=8,246 width=340) (actual rows= loops=)

  • Recheck Cond: (recipient_committee_id = committees.id)
6. 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.id)
7. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.30..14.36 rows=1 width=8) (actual rows= loops=)

8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.86..9.13 rows=1 width=12) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Index Only Scan using individuals_pkey on individuals (cost=0.43..3.89 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = receipts.donor_individual_id)
10. 0.000 0.000 ↓ 0.0

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

  • Index Cond: (individual_id = individuals.id)
11. 0.000 0.000 ↓ 0.0

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

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