explain.depesz.com

PostgreSQL's explain analyze made readable

Result: XG0 : no index

Settings
# exclusive inclusive rows x rows loops node
1. 0.033 0.420 ↑ 1.0 10 1

Limit (cost=57.80..57.83 rows=10 width=209) (actual time=0.381..0.420 rows=10 loops=1)

  • Output: transaction_id, platform, user_id, (CASE WHEN (lock_ts >= '2019-05-10 19:30:57.826893'::timestamp without time zone) THEN 'locked'::text ELSE (status)::text END), item, quantity, pending_ts, pending_ts, transaction_id, platform, NULL::timestamp without time zone, NULL::text, NULL::platform
  • Buffers: shared hit=6
2. 0.143 0.387 ↑ 4.0 10 1

Sort (cost=57.80..57.90 rows=40 width=209) (actual time=0.377..0.387 rows=10 loops=1)

  • Output: transaction_id, platform, user_id, (CASE WHEN (lock_ts >= '2019-05-10 19:30:57.826893'::timestamp without time zone) THEN 'locked'::text ELSE (status)::text END), item, quantity, pending_ts, pending_ts, transaction_id, platform, NULL::timestamp without time zone, NULL::text, NULL::platform
  • Sort Key: transaction.pending_ts, transaction.transaction_id, transaction.platform
  • Sort Method: top-N heapsort Memory: 29kB
  • Buffers: shared hit=6
3. 0.244 0.244 ↑ 1.0 40 1

Index Scan using transaction_user_status_game on public.transaction (cost=0.42..56.94 rows=40 width=209) (actual time=0.026..0.244 rows=40 loops=1)

  • Output: transaction_id, platform, user_id, CASE WHEN (lock_ts >= '2019-05-10 19:30:57.826893'::timestamp without time zone) THEN 'locked'::text ELSE (status)::text END, item, quantity, pending_ts, pending_ts, transaction_id, platform, NULL::timestamp without time zone, NULL::text, NULL::platform
  • Index Cond: ((transaction.user_id = 'fc7a353b4b3c88081a8e0913f26d3971'::text) AND (transaction.status = 'pending'::rv_status) AND (transaction.game = 'test'::text))
  • Filter: ((transaction.fulfilled_ts IS NULL) AND (transaction.pending_ts > '2019-05-10 23:45:18.798869'::timestamp without time zone))
  • Rows Removed by Filter: 10
  • Buffers: shared hit=6