explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 6Sjk

Settings
# exclusive inclusive rows x rows loops node
1. 0.560 8,691.456 ↑ 1.0 1,000 1

Limit (cost=1.02..172,404,839.49 rows=1,000 width=578) (actual time=19.731..8,691.456 rows=1,000 loops=1)

  • Buffers: shared hit=361753
2. 6,201.909 8,690.896 ↑ 27,482.6 1,000 1

GroupAggregate (cost=1.02..4,738,136,661,884.13 rows=27,482,620 width=578) (actual time=19.729..8,690.896 rows=1,000 loops=1)

  • Group Key: p1.ms1_peak_id
  • Buffers: shared hit=361753
3. 406.148 2,488.987 ↑ 3,979,870.7 2,342,946 1

Nested Loop Left Join (cost=1.02..4,691,513,207,112.84 rows=9,324,622,247,709 width=578) (actual time=0.047..2,488.987 rows=2,342,946 loops=1)

  • Buffers: shared hit=361753
4. 2.761 2.761 ↑ 27,455.2 1,001 1

Index Scan using ms1_peak_pkey on ms1_peak p1 (cost=0.44..23,165,600.94 rows=27,482,620 width=546) (actual time=0.020..2.761 rows=1,001 loops=1)

  • Buffers: shared hit=1006
5. 2,080.078 2,080.078 ↑ 144.9 2,341 1,001

Index Scan using ms1_peak_mz_rt_idx on ms1_peak p2 (cost=0.58..167,314.61 rows=339,292 width=48) (actual time=0.022..2.078 rows=2,341 loops=1,001)

  • Index Cond: ((mz >= (p1.mz - (('5'::double precision * p1.mz) / '1000000'::double precision))) AND (mz <= (p1.mz + (('5'::double precision * p1.mz) / '1000000'::double precision))) AND (rt >= (p1.rt - '15'::double precision)) AND (rt <= (p1.rt + '15'::double precision)))
  • Buffers: shared hit=360747