explain.depesz.com

PostgreSQL's explain analyze made readable

Result: y24f

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

Nested Loop Semi Join (cost=2.01..26.21 rows=1 width=10) (actual rows= loops=)

2. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.86..16.89 rows=1 width=10) (actual rows= loops=)

3. 0.000 0.000 ↓ 0.0

Index Only Scan using fs_userpermission_user_id_permission_id_baa0e460_uniq on fs_userpermission (cost=0.43..8.45 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (user_id = 1234)
4. 0.000 0.000 ↓ 0.0

Index Scan using fs_permission_pkey on fs_permission (cost=0.42..8.44 rows=1 width=14) (actual rows= loops=)

  • Index Cond: (id = fs_userpermission.permission_id)
5. 0.000 0.000 ↓ 0.0

Nested Loop (cost=1.15..9.30 rows=1 width=8) (actual rows= loops=)

  • Join Filter: (u1.id = u2.permission_id)
6. 0.000 0.000 ↓ 0.0

Nested Loop (cost=0.72..0.84 rows=1 width=12) (actual rows= loops=)

  • Join Filter: (u0.id = u1.node_id)
7. 0.000 0.000 ↓ 0.0

Index Scan using fs_node_pkey on fs_node u0 (cost=0.29..0.34 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (id = fs_permission.node_id)
  • Filter: ((archived_at IS NULL) AND (path ~ '1.402.403.5261.40005.40006.40009.44636.*{1}'::lquery))
8. 0.000 0.000 ↓ 0.0

Index Scan using fs_permission_node_id_access_right_81ac3a0e_uniq on fs_permission u1 (cost=0.42..0.48 rows=1 width=8) (actual rows= loops=)

  • Index Cond: ((node_id = fs_permission.node_id) AND ((access_right)::text = 'view'::text))
9. 0.000 0.000 ↓ 0.0

Index Only Scan using fs_userpermission_user_id_permission_id_baa0e460_uniq on fs_userpermission u2 (cost=0.43..8.45 rows=1 width=4) (actual rows= loops=)

  • Index Cond: (user_id = 1234)