explain.depesz.com

PostgreSQL's explain analyze made readable

Result: oBic

Settings
# exclusive inclusive rows x rows loops node
1. 27.762 446.149 ↑ 1.7 31,059 1

Nested Loop (cost=118,745.59..275,589.32 rows=52,243 width=1,225) (actual time=251.470..446.149 rows=31,059 loops=1)

  • Buffers: shared hit=160689 read=8496
  • I/O Timings: read=146.268
2. 26.881 263.092 ↑ 1.7 31,059 1

HashAggregate (cost=118,745.15..119,260.26 rows=51,511 width=4) (actual time=251.445..263.092 rows=31,059 loops=1)

  • Group Key: personal_access_tokens.user_id
  • Buffers: shared hit=36311 read=8496
  • I/O Timings: read=146.268
3. 236.211 236.211 ↑ 1.2 44,442 1

Index Scan using index_expired_and_not_notified_personal_access_tokens on public.personal_access_tokens (cost=0.43..118,614.55 rows=52,243 width=4) (actual time=0.109..236.211 rows=44,442 loops=1)

  • Index Cond: ((personal_access_tokens.expires_at >= '2020-01-01'::date) AND (personal_access_tokens.expires_at <= '2020-05-01'::date))
  • Buffers: shared hit=36311 read=8496
  • I/O Timings: read=146.268
4. 155.295 155.295 ↑ 1.0 1 31,059

Index Scan using users_pkey on public.users (cost=0.43..3.02 rows=1 width=1,225) (actual time=0.005..0.005 rows=1 loops=31,059)

  • Index Cond: (users.id = personal_access_tokens.user_id)
  • Buffers: shared hit=124378