explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 85XN

Settings
# exclusive inclusive rows x rows loops node
1. 0.073 2.252 ↑ 1.0 1 1

Index Only Scan using symbol_unique on symbols s (cost=0.28..1,507.16 rows=1 width=20) (actual time=2.250..2.252 rows=1 loops=1)

  • Index Cond: (symbol = 'NAVI'::text)
  • Heap Fetches: 1
  • Buffers: shared hit=255
2.          

SubPlan (forIndex Only Scan)

3. 0.072 1.241 ↑ 1.0 1 1

Limit (cost=726.68..752.33 rows=1 width=16) (actual time=1.235..1.241 rows=1 loops=1)

  • Buffers: shared hit=134
4. 0.001 1.169 ↑ 23,334.0 1 1

Custom Scan (ConstraintAwareAppend) (cost=726.68..599,246.61 rows=23,334 width=16) (actual time=1.169..1.169 rows=1 loops=1)

  • Hypertable: tickers
  • Chunks left after exclusion: 17
  • Buffers: shared hit=134
5. 0.004 1.168 ↑ 23,334.0 1 1

Merge Append (cost=726.68..599,246.61 rows=23,334 width=16) (actual time=1.168..1.168 rows=1 loops=1)

  • Sort Key: t_1."time
  • Buffers: shared hit=134
6. 0.079 0.079 ↑ 2.0 1 1

Index Scan using _hyper_1_2034_chunk_symbol_time on _hyper_1_2034_chunk t_1 (cost=0.43..51.34 rows=2 width=16) (actual time=0.078..0.079 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
7. 0.072 0.072 ↑ 1,331.0 1 1

Index Scan using _hyper_1_2035_chunk_symbol_time on _hyper_1_2035_chunk t_2 (cost=0.43..38,199.58 rows=1,331 width=16) (actual time=0.072..0.072 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
8. 0.067 0.067 ↑ 650.0 1 1

Index Scan using _hyper_1_2036_chunk_symbol_time on _hyper_1_2036_chunk t_3 (cost=0.43..18,032.26 rows=650 width=16) (actual time=0.067..0.067 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
9. 0.055 0.055 ↑ 430.0 1 1

Index Scan using _hyper_1_2037_chunk_symbol_time on _hyper_1_2037_chunk t_4 (cost=0.43..10,299.40 rows=430 width=16) (actual time=0.054..0.055 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
10. 0.056 0.056 ↑ 1,665.0 1 1

Index Scan using _hyper_1_2038_chunk_symbol_time on _hyper_1_2038_chunk t_5 (cost=0.43..43,210.54 rows=1,665 width=16) (actual time=0.056..0.056 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
11. 0.071 0.071 ↑ 1,625.0 1 1

Index Scan using _hyper_1_2039_chunk_symbol_time on _hyper_1_2039_chunk t_6 (cost=0.43..44,306.65 rows=1,625 width=16) (actual time=0.071..0.071 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
12. 0.067 0.067 ↑ 1,566.0 1 1

Index Scan using _hyper_1_2040_chunk_symbol_time on _hyper_1_2040_chunk t_7 (cost=0.43..44,123.96 rows=1,566 width=16) (actual time=0.067..0.067 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
13. 0.068 0.068 ↑ 1,554.0 1 1

Index Scan using _hyper_1_2041_chunk_symbol_time on _hyper_1_2041_chunk t_8 (cost=0.43..43,586.18 rows=1,554 width=16) (actual time=0.068..0.068 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
14. 0.070 0.070 ↑ 1,535.0 1 1

Index Scan using _hyper_1_2042_chunk_symbol_time on _hyper_1_2042_chunk t_9 (cost=0.43..43,485.84 rows=1,535 width=16) (actual time=0.070..0.070 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
15. 0.068 0.068 ↑ 1,556.0 1 1

Index Scan using _hyper_1_2043_chunk_symbol_time on _hyper_1_2043_chunk t_10 (cost=0.43..43,336.78 rows=1,556 width=16) (actual time=0.068..0.068 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
16. 0.070 0.070 ↑ 1,565.0 1 1

Index Scan using _hyper_1_2044_chunk_symbol_time on _hyper_1_2044_chunk t_11 (cost=0.43..43,534.67 rows=1,565 width=16) (actual time=0.069..0.070 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
17. 0.068 0.068 ↑ 1,559.0 1 1

Index Scan using _hyper_1_2045_chunk_symbol_time on _hyper_1_2045_chunk t_12 (cost=0.43..43,639.27 rows=1,559 width=16) (actual time=0.068..0.068 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
18. 0.088 0.088 ↑ 1,514.0 1 1

Index Scan using _hyper_1_2046_chunk_symbol_time on _hyper_1_2046_chunk t_13 (cost=0.43..42,979.76 rows=1,514 width=16) (actual time=0.088..0.088 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
19. 0.063 0.063 ↑ 1,518.0 1 1

Index Scan using _hyper_1_2047_chunk_symbol_time on _hyper_1_2047_chunk t_14 (cost=0.43..43,015.28 rows=1,518 width=16) (actual time=0.062..0.063 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
20. 0.063 0.063 ↑ 611.0 1 1

Index Scan using _hyper_1_2048_chunk_symbol_time on _hyper_1_2048_chunk t_15 (cost=0.43..16,987.24 rows=611 width=16) (actual time=0.063..0.063 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
21. 0.068 0.068 ↑ 1,180.0 1 1

Index Scan using _hyper_1_2049_chunk_symbol_time on _hyper_1_2049_chunk t_16 (cost=0.43..33,121.88 rows=1,180 width=16) (actual time=0.068..0.068 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
22. 0.071 0.071 ↑ 1,439.0 1 1

Index Scan using _hyper_1_2050_chunk_symbol_time on _hyper_1_2050_chunk t_17 (cost=0.43..40,867.21 rows=1,439 width=16) (actual time=0.071..0.071 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
23. 0.076 0.938 ↑ 1.0 1 1

Limit (cost=726.68..752.33 rows=1 width=16) (actual time=0.935..0.938 rows=1 loops=1)

  • Buffers: shared hit=118
24. 0.000 0.862 ↑ 23,334.0 1 1

Custom Scan (ConstraintAwareAppend) (cost=726.68..599,246.61 rows=23,334 width=16) (actual time=0.862..0.862 rows=1 loops=1)

  • Hypertable: tickers
  • Chunks left after exclusion: 17
  • Buffers: shared hit=118
25. 0.005 0.862 ↑ 23,334.0 1 1

Merge Append (cost=726.68..599,246.61 rows=23,334 width=16) (actual time=0.862..0.862 rows=1 loops=1)

  • Sort Key: t_19."time" DESC
  • Buffers: shared hit=118
26. 0.043 0.043 ↑ 2.0 1 1

Index Scan Backward using _hyper_1_2034_chunk_symbol_time on _hyper_1_2034_chunk t_19 (cost=0.43..51.34 rows=2 width=16) (actual time=0.043..0.043 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
27. 0.049 0.049 ↑ 1,331.0 1 1

Index Scan Backward using _hyper_1_2035_chunk_symbol_time on _hyper_1_2035_chunk t_20 (cost=0.43..38,199.58 rows=1,331 width=16) (actual time=0.049..0.049 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
28. 0.049 0.049 ↑ 650.0 1 1

Index Scan Backward using _hyper_1_2036_chunk_symbol_time on _hyper_1_2036_chunk t_21 (cost=0.43..18,032.26 rows=650 width=16) (actual time=0.049..0.049 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
29. 0.052 0.052 ↑ 430.0 1 1

Index Scan Backward using _hyper_1_2037_chunk_symbol_time on _hyper_1_2037_chunk t_22 (cost=0.43..10,299.40 rows=430 width=16) (actual time=0.052..0.052 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
30. 0.047 0.047 ↑ 1,665.0 1 1

Index Scan Backward using _hyper_1_2038_chunk_symbol_time on _hyper_1_2038_chunk t_23 (cost=0.43..43,210.54 rows=1,665 width=16) (actual time=0.047..0.047 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
31. 0.045 0.045 ↑ 1,625.0 1 1

Index Scan Backward using _hyper_1_2039_chunk_symbol_time on _hyper_1_2039_chunk t_24 (cost=0.43..44,306.65 rows=1,625 width=16) (actual time=0.045..0.045 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
32. 0.049 0.049 ↑ 1,566.0 1 1

Index Scan Backward using _hyper_1_2040_chunk_symbol_time on _hyper_1_2040_chunk t_25 (cost=0.43..44,123.96 rows=1,566 width=16) (actual time=0.049..0.049 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
33. 0.053 0.053 ↑ 1,554.0 1 1

Index Scan Backward using _hyper_1_2041_chunk_symbol_time on _hyper_1_2041_chunk t_26 (cost=0.43..43,586.18 rows=1,554 width=16) (actual time=0.053..0.053 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
34. 0.051 0.051 ↑ 1,535.0 1 1

Index Scan Backward using _hyper_1_2042_chunk_symbol_time on _hyper_1_2042_chunk t_27 (cost=0.43..43,485.84 rows=1,535 width=16) (actual time=0.051..0.051 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
35. 0.047 0.047 ↑ 1,556.0 1 1

Index Scan Backward using _hyper_1_2043_chunk_symbol_time on _hyper_1_2043_chunk t_28 (cost=0.43..43,336.78 rows=1,556 width=16) (actual time=0.047..0.047 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
36. 0.048 0.048 ↑ 1,565.0 1 1

Index Scan Backward using _hyper_1_2044_chunk_symbol_time on _hyper_1_2044_chunk t_29 (cost=0.43..43,534.67 rows=1,565 width=16) (actual time=0.048..0.048 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
37. 0.056 0.056 ↑ 1,559.0 1 1

Index Scan Backward using _hyper_1_2045_chunk_symbol_time on _hyper_1_2045_chunk t_30 (cost=0.43..43,639.27 rows=1,559 width=16) (actual time=0.056..0.056 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
38. 0.052 0.052 ↑ 1,514.0 1 1

Index Scan Backward using _hyper_1_2046_chunk_symbol_time on _hyper_1_2046_chunk t_31 (cost=0.43..42,979.76 rows=1,514 width=16) (actual time=0.052..0.052 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
39. 0.049 0.049 ↑ 1,518.0 1 1

Index Scan Backward using _hyper_1_2047_chunk_symbol_time on _hyper_1_2047_chunk t_32 (cost=0.43..43,015.28 rows=1,518 width=16) (actual time=0.049..0.049 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
40. 0.050 0.050 ↑ 611.0 1 1

Index Scan Backward using _hyper_1_2048_chunk_symbol_time on _hyper_1_2048_chunk t_33 (cost=0.43..16,987.24 rows=611 width=16) (actual time=0.050..0.050 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
41. 0.039 0.039 ↑ 1,180.0 1 1

Index Scan Backward using _hyper_1_2049_chunk_symbol_time on _hyper_1_2049_chunk t_34 (cost=0.43..33,121.88 rows=1,180 width=16) (actual time=0.039..0.039 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=7
42. 0.078 0.078 ↑ 1,439.0 1 1

Index Scan Backward using _hyper_1_2050_chunk_symbol_time on _hyper_1_2050_chunk t_35 (cost=0.43..40,867.21 rows=1,439 width=16) (actual time=0.078..0.078 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6