explain.depesz.com

PostgreSQL's explain analyze made readable

Result: AxHQ

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

Seq Scan on subscribers (cost=0.00..626,533,980.54 rows=2,237,473 width=917) (actual rows= loops=)

  • Filter: (((SubPlan 1) AND (NOT (alternatives: SubPlan 2 or hashed SubPlan 3))) OR (alternatives: SubPlan 4 or hashed SubPlan 5))
2.          

SubPlan (forSeq Scan)

3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.00..58.22 rows=1 width=0) (actual rows= loops=)

4. 0.000 0.000 ↓ 0.0

Index Scan using content_value_key on content c (cost=0.43..8.45 rows=1 width=4) (actual rows= loops=)

  • Index Cond: ((value)::text = (subscribers.msisdn)::text)
5. 0.000 0.000 ↓ 0.0

Index Only Scan using file_contents_pkey on file_contents fc (cost=0.57..49.77 rows=1 width=4) (actual rows= loops=)

  • Index Cond: ((file_id = ANY (('{879,971,1054,1294,1339,2566,5182}'::text[])::integer[])) AND (content_id = c.id))
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.00..58.22 rows=1 width=0) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Index Scan using content_value_key on content c_1 (cost=0.43..8.45 rows=1 width=4) (actual rows= loops=)

  • Index Cond: ((value)::text = (subscribers.msisdn)::text)
8. 0.000 0.000 ↓ 0.0

Index Only Scan using file_contents_pkey on file_contents fc_1 (cost=0.57..49.77 rows=1 width=4) (actual rows= loops=)

  • Index Cond: ((file_id = ANY (('{2610}'::text[])::integer[])) AND (content_id = c_1.id))
9. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.00..118,104.68 rows=20,887 width=32) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Index Only Scan using file_contents_pkey on file_contents fc_2 (cost=0.57..1,885.53 rows=20,887 width=4) (actual rows= loops=)

  • Index Cond: (file_id = ANY (('{2610}'::text[])::integer[]))
11. 0.000 0.000 ↓ 0.0

Index Scan using content_pkey on content c_2 (cost=0.43..5.56 rows=1 width=17) (actual rows= loops=)

  • Index Cond: (id = fc_2.content_id)
12. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.00..58.22 rows=1 width=0) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Index Scan using content_value_key on content c_3 (cost=0.43..8.45 rows=1 width=4) (actual rows= loops=)

  • Index Cond: ((value)::text = (subscribers.msisdn)::text)
14. 0.000 0.000 ↓ 0.0

Index Only Scan using file_contents_pkey on file_contents fc_3 (cost=0.57..49.77 rows=1 width=4) (actual rows= loops=)

  • Index Cond: ((file_id = ANY (('{5182}'::text[])::integer[])) AND (content_id = c_3.id))
15. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.00..118,104.68 rows=20,887 width=32) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Index Only Scan using file_contents_pkey on file_contents fc_4 (cost=0.57..1,885.53 rows=20,887 width=4) (actual rows= loops=)

  • Index Cond: (file_id = ANY (('{5182}'::text[])::integer[]))
17. 0.000 0.000 ↓ 0.0

Index Scan using content_pkey on content c_4 (cost=0.43..5.56 rows=1 width=17) (actual rows= loops=)

  • Index Cond: (id = fc_4.content_id)