explain.depesz.com

PostgreSQL's explain analyze made readable

Result: vkxHS

Settings
# exclusive inclusive rows x rows loops node
1. 3.019 123.783 ↑ 1.0 20,000 1

Limit (cost=1.53..66,566.04 rows=20,000 width=297) (actual time=10.732..123.783 rows=20,000 loops=1)

  • Buffers: shared hit=137
2. 91.842 120.764 ↑ 105.4 20,000 1

Result (cost=1.53..7,017,734.37 rows=2,108,551 width=297) (actual time=10.729..120.764 rows=20,000 loops=1)

  • Buffers: shared hit=137
3. 3.257 28.922 ↑ 105.4 20,000 1

Merge Append (cost=1.53..6,980,834.73 rows=2,108,551 width=297) (actual time=0.091..28.922 rows=20,000 loops=1)

  • Buffers: shared hit=137
4. 0.013 0.013 ↓ 0.0 0 1

Index Scan using ix_ais_messages_created_at on ais_messages ais_messages (cost=0.44..8.46 rows=1 width=298) (actual time=0.013..0.013 rows=0 loops=1)

  • Index Cond: ((ais_messages.created_at > '2019-10-09 04:16:59.650518+00'::timestamp with time zone) AND (ais_messages.created_at <= now()))
  • Filter: ((ais_messages.clean IS TRUE) AND (ais_messages.on_land IS NOT TRUE) AND ((ais_messages.supplier)::text = ANY ('{astrapaging,spire,jakota}'::text[])))
  • Buffers: shared hit=3
5. 25.624 25.624 ↑ 105.4 20,000 1

Index Scan using ais_messages_p2019_10_09_created_at_idx on ais_messages_p2019_10_09 ais_messages_p2019_10_09 (cost=0.44..6,921,016.89 rows=2,108,546 width=297) (actual time=0.049..25.624 rows=20,000 loops=1)

  • Index Cond: ((ais_messages_p2019_10_09.created_at > '2019-10-09 04:16:59.650518+00'::timestamp with time zone) AND (ais_messages_p2019_10_09.created_at <= now()))
  • Filter: ((ais_messages_p2019_10_09.clean IS TRUE) AND (ais_messages_p2019_10_09.on_land IS NOT TRUE) AND ((ais_messages_p2019_10_09.supplier)::text = ANY ('{astrapaging,spire,jakota}'::text[])))
  • Buffers: shared hit=130
6. 0.009 0.009 ↓ 0.0 0 1

Index Scan using ais_messages_p2019_10_10_created_at_id_idx on ais_messages_p2019_10_10 ais_messages_p2019_10_10 (cost=0.14..8.17 rows=1 width=854) (actual time=0.009..0.009 rows=0 loops=1)

  • Index Cond: ((ais_messages_p2019_10_10.created_at > '2019-10-09 04:16:59.650518+00'::timestamp with time zone) AND (ais_messages_p2019_10_10.created_at <= now()))
  • Filter: ((ais_messages_p2019_10_10.clean IS TRUE) AND (ais_messages_p2019_10_10.on_land IS NOT TRUE) AND ((ais_messages_p2019_10_10.supplier)::text = ANY ('{astrapaging,spire,jakota}'::text[])))
  • Buffers: shared hit=1
7. 0.006 0.006 ↓ 0.0 0 1

Index Scan using ais_messages_p2019_10_11_created_at_id_idx on ais_messages_p2019_10_11 ais_messages_p2019_10_11 (cost=0.14..8.17 rows=1 width=854) (actual time=0.006..0.006 rows=0 loops=1)

  • Index Cond: ((ais_messages_p2019_10_11.created_at > '2019-10-09 04:16:59.650518+00'::timestamp with time zone) AND (ais_messages_p2019_10_11.created_at <= now()))
  • Filter: ((ais_messages_p2019_10_11.clean IS TRUE) AND (ais_messages_p2019_10_11.on_land IS NOT TRUE) AND ((ais_messages_p2019_10_11.supplier)::text = ANY ('{astrapaging,spire,jakota}'::text[])))
  • Buffers: shared hit=1
8. 0.007 0.007 ↓ 0.0 0 1

Index Scan using ais_messages_p2019_10_12_created_at_id_idx on ais_messages_p2019_10_12 ais_messages_p2019_10_12 (cost=0.14..8.17 rows=1 width=854) (actual time=0.007..0.007 rows=0 loops=1)

  • Index Cond: ((ais_messages_p2019_10_12.created_at > '2019-10-09 04:16:59.650518+00'::timestamp with time zone) AND (ais_messages_p2019_10_12.created_at <= now()))
  • Filter: ((ais_messages_p2019_10_12.clean IS TRUE) AND (ais_messages_p2019_10_12.on_land IS NOT TRUE) AND ((ais_messages_p2019_10_12.supplier)::text = ANY ('{astrapaging,spire,jakota}'::text[])))
  • Buffers: shared hit=1
9. 0.006 0.006 ↓ 0.0 0 1

Index Scan using ais_messages_p2019_10_13_created_at_id_idx on ais_messages_p2019_10_13 ais_messages_p2019_10_13 (cost=0.14..8.17 rows=1 width=854) (actual time=0.006..0.006 rows=0 loops=1)

  • Index Cond: ((ais_messages_p2019_10_13.created_at > '2019-10-09 04:16:59.650518+00'::timestamp with time zone) AND (ais_messages_p2019_10_13.created_at <= now()))
  • Filter: ((ais_messages_p2019_10_13.clean IS TRUE) AND (ais_messages_p2019_10_13.on_land IS NOT TRUE) AND ((ais_messages_p2019_10_13.supplier)::text = ANY ('{astrapaging,spire,jakota}'::text[])))
  • Buffers: shared hit=1