explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 55ijL

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

Sort (cost=180,202.65..180,208.56 rows=11,816 width=47) (actual rows= loops=)

  • Sort Key: notes.created_at
2. 0.000 0.000 ↓ 0.0

Group (cost=180,030.98..180,042.80 rows=11,816 width=47) (actual rows= loops=)

  • Group Key: notes.id
3. 0.000 0.000 ↓ 0.0

Sort (cost=180,030.98..180,036.89 rows=11,816 width=47) (actual rows= loops=)

  • Sort Key: notes.id
4. 0.000 0.000 ↓ 0.0

Hash Right Join (cost=125,349.77..179,871.13 rows=11,816 width=47) (actual rows= loops=)

  • Hash Cond: (snippet_taggings.taggable_uuid_id = snippets.id)
5. 0.000 0.000 ↓ 0.0

Seq Scan on taggings snippet_taggings (cost=0.00..54,472.06 rows=65,639 width=20) (actual rows= loops=)

  • Filter: ((taggable_uuid_type)::text = 'Snippet'::text)
6. 0.000 0.000 ↓ 0.0

Hash (cost=125,308.41..125,308.41 rows=11,816 width=63) (actual rows= loops=)

7. 0.000 0.000 ↓ 0.0

Gather (cost=47,339.65..125,308.41 rows=11,816 width=63) (actual rows= loops=)

  • Workers Planned: 1
8. 0.000 0.000 ↓ 0.0

Nested Loop (cost=46,339.65..123,126.81 rows=6,951 width=63) (actual rows= loops=)

9. 0.000 0.000 ↓ 0.0

Hash Left Join (cost=46,339.56..76,182.26 rows=9,118 width=63) (actual rows= loops=)

  • Hash Cond: (notes.id = snippets.note_id)
  • Filter: (snippets.deleted_at IS NULL)
10. 0.000 0.000 ↓ 0.0

Parallel Bitmap Heap Scan on notes (cost=531.44..29,568.08 rows=9,624 width=47) (actual rows= loops=)

  • Recheck Cond: (space_id = 12748)
11. 0.000 0.000 ↓ 0.0

Bitmap Index Scan on index_notes_on_space_id (cost=0.00..530.63 rows=16,360 width=0) (actual rows= loops=)

  • Index Cond: (space_id = 12748)
12. 0.000 0.000 ↓ 0.0

Hash (cost=42,681.75..42,681.75 rows=893,249 width=28) (actual rows= loops=)

13. 0.000 0.000 ↓ 0.0

Seq Scan on snippets (cost=0.00..42,681.75 rows=893,249 width=28) (actual rows= loops=)

14. 0.000 0.000 ↓ 0.0

Index Scan using index_taggable on taggings note_taggings (cost=0.09..5.14 rows=3 width=8) (actual rows= loops=)

  • Index Cond: ((taggable_id = notes.id) AND ((taggable_type)::text = 'Note'::text))