explain.depesz.com

PostgreSQL's explain analyze made readable

Result: ISpo

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

Limit (cost=319.03..319.06 rows=11 width=1,176) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Sort (cost=319.03..319.06 rows=11 width=1,176) (actual rows= loops=)

  • Sort Key: retailer_term_v2s.score DESC NULLS LAST, generic_term_v2s.score DESC NULLS LAST, ((((ts_rank(items_0.full_text_v2, '''appl'''::tsquery, 1) * '100'::double precision) + (COALESCE(products_conversions.score, '0'::double precision) * '1000'::double precision)) * '1'::double precision)) DESC, items_0.item_id DESC
3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=145.95..318.84 rows=11 width=1,176) (actual rows= loops=)

  • Join Filter: (generic_term_v2s.product_id = items_0.product_id)
4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=145.79..310.28 rows=11 width=1,131) (actual rows= loops=)

  • Join Filter: ((retailer_term_v2s.product_id = items_0.product_id) AND (retailer_term_v2s.retailer_id = items_0.retailer_id))
5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=141.60..296.64 rows=11 width=1,123) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=141.19..198.45 rows=11 width=1,115) (actual rows= loops=)

  • Join Filter: ((items_availabilities.inventory_area_id = items_0.inventory_area_id) AND (items_availabilities.item_id = items_0.item_id))
7. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on items_0 (cost=136.98..182.73 rows=11 width=1,107) (actual rows= loops=)

  • Recheck Cond: ((full_text_v2 @@ '''appl'''::tsquery) AND (inventory_area_id = 20,636))
  • Filter: (visible AND available AND (NOT alcoholic))
8. 0.000 0.000 ↓ 0.0

BitmapAnd (cost=136.98..136.98 rows=12 width=0) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on search_index_v2_items_0 (cost=0.00..20.80 rows=80 width=0) (actual rows= loops=)

  • Index Cond: ((full_text_v2 @@ '''appl'''::tsquery) AND (inventory_area_id = 20,636))
10. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on items_0_available_visible_idx (cost=0.00..115.93 rows=2,764 width=0) (actual rows= loops=)

  • Index Cond: ((available = true) AND (visible = true))
11. 0.000 0.000 ↓ 0.0

Materialize (cost=4.21..14.39 rows=7 width=20) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on items_availabilities_0 items_availabilities (cost=4.21..14.35 rows=7 width=20) (actual rows= loops=)

  • Recheck Cond: (inventory_area_id = 20,636)
13. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on items_availabilities_0_inventory_area_id_idx (cost=0.00..4.21 rows=7 width=0) (actual rows= loops=)

  • Index Cond: (inventory_area_id = 20,636)
14. 0.000 0.000 ↓ 0.0

Index Scan using index_products_conversions_on_cpk on products_conversions (cost=0.42..8.44 rows=1 width=12) (actual rows= loops=)

  • Index Cond: ((version = 3) AND (product_id = items_0.product_id) AND ((query)::text = 'apples'::text))
15. 0.000 0.000 ↓ 0.0

Materialize (cost=4.19..12.69 rows=5 width=16) (actual rows= loops=)

16. 0.000 0.000 ↓ 0.0

Bitmap Heap Scan on retailer_products_term_v2s retailer_term_v2s (cost=4.19..12.66 rows=5 width=16) (actual rows= loops=)

  • Recheck Cond: (term = 'apples'::text)
17. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on index_retailer_products_term_v2s_on_natural_key (cost=0.00..4.19 rows=5 width=0) (actual rows= loops=)

  • Index Cond: (term = 'apples'::text)
18. 0.000 0.000 ↓ 0.0

Materialize (cost=0.15..8.18 rows=1 width=12) (actual rows= loops=)

19. 0.000 0.000 ↓ 0.0

Index Scan using index_retailer_products_term_v2s_on_natural_key on retailer_products_term_v2s generic_term_v2s (cost=0.15..8.17 rows=1 width=12) (actual rows= loops=)