explain.depesz.com

PostgreSQL's explain analyze made readable

Result: MU4y

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

Sort (cost=2,112,573.15..2,113,088.84 rows=206,275 width=6,831) (actual rows= loops=)

  • Sort Key: db_buildjob.updated_at DESC
2. 0.000 0.000 ↓ 0.0

Hash Join (cost=12.11..281,697.54 rows=206,275 width=6,831) (actual rows= loops=)

  • Hash Cond: (db_buildjob.user_id = db_user.id)
3. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.99..278,850.14 rows=206,275 width=5,304) (actual rows= loops=)

  • Join Filter: (db_buildjob.project_id = db_project.id)
4. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.14..9.18 rows=1 width=1,975) (actual rows= loops=)

5. 0.000 0.000 ↓ 0.0

Seq Scan on db_project (cost=0.00..1.01 rows=1 width=448) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Index Scan using db_user_pkey on db_user t4 (cost=0.14..8.16 rows=1 width=1,527) (actual rows= loops=)

  • Index Cond: (db_project.user_id = id)
7. 0.000 0.000 ↓ 0.0

Merge Left Join (cost=0.85..276,262.52 rows=206,275 width=3,329) (actual rows= loops=)

  • Merge Cond: (db_buildjob.status_id = db_buildjobstatus.id)
8. 0.000 0.000 ↓ 0.0

Index Scan using db_buildjob_status_id_key on db_buildjob (cost=0.42..102,219.26 rows=206,275 width=864) (actual rows= loops=)

  • Filter: (NOT deleted)
9. 0.000 0.000 ↓ 0.0

Index Scan using db_buildjobstatus_pkey on db_buildjobstatus (cost=0.43..168,679.42 rows=1,114,161 width=2,465) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Hash (cost=10.50..10.50 rows=50 width=1,527) (actual rows= loops=)

11. 0.000 0.000 ↓ 0.0

Seq Scan on db_user (cost=0.00..10.50 rows=50 width=1,527) (actual rows= loops=)