explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 3WWP

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

Limit (cost=0.99..2,009.04 rows=20 width=2,557) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.99..9,505,612.13 rows=94,675 width=2,557) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.57..1,104,554.32 rows=94,675 width=1,881) (actual rows= loops=)

  • Join Filter: (decoration_type.id = flat.decoration_type_id)
4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.57..1,071,776.60 rows=94,675 width=1,762) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.42..1,056,623.49 rows=94,675 width=1,742) (actual rows= loops=)

  • Join Filter: (flat_type.id = flat.type_id)
6. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.42..1,053,985.12 rows=94,675 width=1,424) (actual rows= loops=)

  • Join Filter: (status.id = flat.deal_status_id)
7. 0.000 0.000 ↓ 0.0

Index Scan using flat_price_index on flat (cost=0.42..1,047,216.83 rows=94,675 width=1,106) (actual rows= loops=)

  • Filter: (actual AND (category_type = 1))
8. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.07 rows=5 width=334) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Seq Scan on status (cost=0.00..1.05 rows=5 width=334) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Materialize (cost=0.00..1.03 rows=2 width=334) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Seq Scan on flat_type (cost=0.00..1.02 rows=2 width=334) (actual rows= loops=)

12. 0.000 0.000 ↓ 0.0

Index Scan using balcony_type_id_idx on balcony_type (cost=0.14..0.16 rows=1 width=36) (actual rows= loops=)

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

Materialize (cost=0.00..1.36 rows=24 width=135) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Seq Scan on decoration_type (cost=0.00..1.24 rows=24 width=135) (actual rows= loops=)

15. 0.000 0.000 ↓ 0.0

Index Scan using semantic_url_new_flat_type_idx on semantic_url_new (cost=0.42..41.72 rows=2,097 width=1,511) (actual rows= loops=)

  • Index Cond: (flat.id = (split_part((request_url)::text, 'flats/'::text, 2))::uuid)
16.          

SubPlan (for Nested Loop Left Join)

17. 0.000 0.000 ↓ 0.0

Index Scan using building_id_idx on building (cost=0.29..8.30 rows=1 width=13) (actual rows= loops=)

  • Index Cond: (id = flat.building_id)
18. 0.000 0.000 ↓ 0.0

Index Scan using document_advantage_id_idx on document_advantage (cost=0.42..8.44 rows=1 width=745) (actual rows= loops=)

  • Index Cond: (id = flat.document_advantage_id)
19. 0.000 0.000 ↓ 0.0

Index Scan using building_id_idx on building b (cost=0.29..8.55 rows=1 width=32) (actual rows= loops=)

  • Index Cond: (id = flat.building_id)