explain.depesz.com

PostgreSQL's explain analyze made readable

Result: Yzjh

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

Limit (cost=2,148.54..2,170.01 rows=50 width=126) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Merge Left Join (cost=1.42..8,213.70 rows=19,124 width=126) (actual rows= loops=)

  • Merge Cond: (p.id = ts."phraseId")
3. 0.000 0.000 ↓ 0.0

Merge Join (cost=0.85..4,521.51 rows=19,124 width=94) (actual rows= loops=)

  • Merge Cond: (t."phraseId" = p.id)
4. 0.000 0.000 ↓ 0.0

Merge Join (cost=0.57..4,225.58 rows=19,231 width=81) (actual rows= loops=)

  • Merge Cond: ((t."phraseId" = v."phraseId") AND (t."langId" = v."langId"))
5. 0.000 0.000 ↓ 0.0

Index Scan using phrases_translations_pkey on phrases_translations t (cost=0.29..2,343.96 rows=21,947 width=18) (actual rows= loops=)

6. 0.000 0.000 ↓ 0.0

Index Scan using "phrases_versions_phraseId_langId" on phrases_versions v (cost=0.29..1,466.90 rows=22,535 width=65) (actual rows= loops=)

  • Filter: ("userId" = '-1000000'::integer)
7. 0.000 0.000 ↓ 0.0

Index Scan using phrases_pkey on phrases p (cost=0.28..53.00 rows=1,013 width=29) (actual rows= loops=)

  • Filter: ("projectId" = '-3000000'::integer)
8. 0.000 0.000 ↓ 0.0

Materialize (cost=0.57..3,312.25 rows=1,013 width=47) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Nested Loop Left Join (cost=0.57..3,309.72 rows=1,013 width=47) (actual rows= loops=)

10. 0.000 0.000 ↓ 0.0

Index Scan using "phrases_translations_phraseId" on phrases_translations ts (cost=0.29..1,508.75 rows=1,013 width=16) (actual rows= loops=)

  • Filter: ("langId" = 85)
11. 0.000 0.000 ↓ 0.0

Index Scan using phrases_versions_pkey on phrases_versions vs (cost=0.29..1.78 rows=1 width=47) (actual rows= loops=)

  • Index Cond: (ts."currentVersion" = id)