explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 4Gjy

Settings
# exclusive inclusive rows x rows loops node
1. 0.011 78.147 ↓ 1.9 25 1

Limit (cost=19.48..1,198.94 rows=13 width=2,191) (actual time=2.393..78.147 rows=25 loops=1)

2. 0.056 78.136 ↓ 1.9 25 1

Nested Loop Left Join (cost=19.48..1,198.94 rows=13 width=2,191) (actual time=2.391..78.136 rows=25 loops=1)

3. 0.047 78.005 ↓ 1.9 25 1

Nested Loop Left Join (cost=19.42..1,179.30 rows=13 width=957) (actual time=2.380..78.005 rows=25 loops=1)

4. 0.276 77.833 ↓ 1.9 25 1

Nested Loop (cost=19.36..1,177.64 rows=13 width=941) (actual time=2.363..77.833 rows=25 loops=1)

5. 0.461 77.099 ↓ 1.4 458 1

Nested Loop (cost=19.31..1,152.18 rows=327 width=941) (actual time=0.754..77.099 rows=458 loops=1)

  • Join Filter: (property_places.place_id = places.id)
6. 0.407 75.264 ↓ 1.4 458 1

Nested Loop Left Join (cost=19.25..1,112.79 rows=326 width=617) (actual time=0.744..75.264 rows=458 loops=1)

7. 0.531 73.489 ↓ 1.4 456 1

Nested Loop Left Join (cost=19.20..1,031.58 rows=326 width=557) (actual time=0.735..73.489 rows=456 loops=1)

8. 3.417 72.508 ↓ 1.4 450 1

Nested Loop (cost=19.14..1,006.44 rows=326 width=464) (actual time=0.725..72.508 rows=450 loops=1)

9. 6.220 49.195 ↓ 4.7 9,948 1

Nested Loop (cost=19.08..727.86 rows=2,120 width=323) (actual time=0.670..49.195 rows=9,948 loops=1)

10. 3.039 23.149 ↓ 4.7 9,913 1

Nested Loop (cost=19.03..495.15 rows=2,106 width=48) (actual time=0.625..23.149 rows=9,913 loops=1)

11. 1.054 3.222 ↓ 4.5 8,444 1

Nested Loop (cost=18.97..336.22 rows=1,878 width=16) (actual time=0.615..3.222 rows=8,444 loops=1)

12. 0.022 0.022 ↑ 1.0 1 1

Seq Scan on areas (cost=0.00..6.05 rows=1 width=16) (actual time=0.022..0.022 rows=1 loops=1)

  • Filter: ((slug)::text = 'los-angeles-ca'::text)
  • Rows Removed by Filter: 12
13. 1.600 2.146 ↓ 4.5 8,444 1

Bitmap Heap Scan on area_places (cost=18.97..324.54 rows=1,878 width=32) (actual time=0.590..2.146 rows=8,444 loops=1)

  • Recheck Cond: (area_id = areas.id)
  • Heap Blocks: exact=197
14. 0.546 0.546 ↓ 6.6 12,459 1

Bitmap Index Scan on index_area_places_on_area_id (cost=0.00..18.87 rows=1,878 width=0) (actual time=0.546..0.546 rows=12,459 loops=1)

  • Index Cond: (area_id = areas.id)
15. 16.888 16.888 ↑ 1.0 1 8,444

Index Scan using index_property_places_on_place_id on property_places (cost=0.06..0.08 rows=1 width=32) (actual time=0.002..0.002 rows=1 loops=8,444)

  • Index Cond: (place_id = area_places.place_id)
16. 19.826 19.826 ↑ 1.0 1 9,913

Index Scan using index_units_on_property_place_id on units (cost=0.06..0.11 rows=1 width=291) (actual time=0.002..0.002 rows=1 loops=9,913)

  • Index Cond: (property_place_id = property_places.id)
  • Filter: (bedrooms >= 0)
  • Rows Removed by Filter: 0
17. 19.896 19.896 ↓ 0.0 0 9,948

Index Scan using index_user_units_on_unit_id on user_units (cost=0.06..0.13 rows=1 width=141) (actual time=0.002..0.002 rows=0 loops=9,948)

  • Index Cond: (unit_id = units.id)
  • Filter: ((removed_from_feed_at IS NULL) AND (move_date >= '2020-06-06'::date) AND ((user_id <> '00016bc7-dad1-45ad-8661-2cda4728a896'::uuid) OR (property_manager_id IS NOT NULL)) AND (price < 110000))
  • Rows Removed by Filter: 1
18. 0.450 0.450 ↓ 0.0 0 450

Index Scan using index_user_unit_transitions_on_user_unit_id on user_unit_transitions (cost=0.06..0.07 rows=1 width=93) (actual time=0.001..0.001 rows=0 loops=450)

  • Index Cond: (user_unit_id = user_units.id)
19. 1.368 1.368 ↑ 1.0 1 456

Index Scan using index_unit_ratings_on_user_unit_id on unit_ratings (cost=0.06..0.25 rows=1 width=60) (actual time=0.003..0.003 rows=1 loops=456)

  • Index Cond: (user_unit_id = user_units.id)
20. 1.374 1.374 ↑ 1.0 1 458

Index Scan using places_pkey on places (cost=0.06..0.12 rows=1 width=356) (actual time=0.003..0.003 rows=1 loops=458)

  • Index Cond: (id = area_places.place_id)
21. 0.458 0.458 ↓ 0.0 0 458

Index Scan using index_user_unit_transitions_on_user_unit_id on user_unit_transitions most_recent_user_unit_transition (cost=0.06..0.07 rows=1 width=16) (actual time=0.001..0.001 rows=0 loops=458)

  • Index Cond: (user_unit_id = user_units.id)
  • Filter: (most_recent AND (to_state IS NOT NULL) AND ((to_state)::text = ANY ('{pocketlisting,given_notice,on_market}'::text[])))
  • Rows Removed by Filter: 0
22. 0.125 0.125 ↑ 1.0 1 25

Index Scan using index_user_unit_photos_on_user_unit_id on user_unit_photos (cost=0.06..0.12 rows=1 width=32) (actual time=0.005..0.005 rows=1 loops=25)

  • Index Cond: (user_unit_id = user_units.id)
  • Filter: (primary_photo AND (deleted_at IS NULL))
  • Rows Removed by Filter: 4
23. 0.075 0.075 ↑ 1.0 1 25

Index Scan using photos_pkey on photos (cost=0.06..1.51 rows=1 width=1,250) (actual time=0.003..0.003 rows=1 loops=25)

  • Index Cond: (id = user_unit_photos.photo_id)