explain.depesz.com

PostgreSQL's explain analyze made readable

Result: 1wVN

Settings
# exclusive inclusive rows x rows loops node
1. 0.036 2.653 ↑ 1.0 1 1

Index Only Scan using symbol_unique on symbols s (cost=0.28..1,507.14 rows=1 width=20) (actual time=2.652..2.653 rows=1 loops=1)

  • Index Cond: (symbol = 'ETH'::text)
  • Heap Fetches: 1
  • Buffers: shared hit=256 read=1
  • I/O Timings: read=0.023
2.          

SubPlan (forIndex Only Scan)

3. 0.072 1.127 ↑ 1.0 1 1

Limit (cost=726.68..752.32 rows=1 width=16) (actual time=1.121..1.127 rows=1 loops=1)

  • Buffers: shared hit=100 read=1
  • I/O Timings: read=0.023
4. 0.001 1.055 ↑ 23,298.0 1 1

Custom Scan (ConstraintAwareAppend) (cost=726.68..598,120.98 rows=23,298 width=16) (actual time=1.055..1.055 rows=1 loops=1)

  • Hypertable: tickers
  • Chunks left after exclusion: 17
  • Buffers: shared hit=100 read=1
  • I/O Timings: read=0.023
5. 0.001 1.054 ↑ 23,298.0 1 1

Merge Append (cost=726.68..598,120.98 rows=23,298 width=16) (actual time=1.054..1.054 rows=1 loops=1)

  • Sort Key: t_1."time
  • Buffers: shared hit=100 read=1
  • I/O Timings: read=0.023
6. 0.131 0.131 ↑ 39.0 1 1

Index Scan using _hyper_1_2034_chunk_symbol_time on _hyper_1_2034_chunk t_1 (cost=0.43..1,172.93 rows=39 width=16) (actual time=0.131..0.131 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=5 read=1
  • I/O Timings: read=0.023
7. 0.065 0.065 ↑ 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.065..0.065 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
8. 0.060 0.060 ↑ 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.060..0.060 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
9. 0.047 0.047 ↑ 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.046..0.047 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=5
10. 0.060 0.060 ↑ 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.059..0.060 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
11. 0.058 0.058 ↑ 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.058..0.058 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
12. 0.058 0.058 ↑ 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.058..0.058 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
13. 0.059 0.059 ↑ 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.058..0.059 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
14. 0.068 0.068 ↑ 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.068..0.068 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
15. 0.059 0.059 ↑ 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.059..0.059 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
16. 0.061 0.061 ↑ 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.061..0.061 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
17. 0.053 0.053 ↑ 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.053..0.053 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
18. 0.050 0.050 ↑ 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.050..0.050 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
19. 0.060 0.060 ↑ 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.060..0.060 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
20. 0.065 0.065 ↑ 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.065..0.065 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=6
21. 0.055 0.055 ↑ 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.055..0.055 rows=1 loops=1)

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

Index Scan using _hyper_1_2050_chunk_symbol_time on _hyper_1_2050_chunk t_17 (cost=0.43..38,622.06 rows=1,366 width=16) (actual time=0.043..0.044 rows=1 loops=1)

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

Limit (cost=726.68..752.32 rows=1 width=16) (actual time=1.487..1.490 rows=1 loops=1)

  • Buffers: shared hit=153
24. 0.001 1.443 ↑ 23,298.0 1 1

Custom Scan (ConstraintAwareAppend) (cost=726.68..598,120.98 rows=23,298 width=16) (actual time=1.443..1.443 rows=1 loops=1)

  • Hypertable: tickers
  • Chunks left after exclusion: 17
  • Buffers: shared hit=153
25. 0.001 1.442 ↑ 23,298.0 1 1

Merge Append (cost=726.68..598,120.98 rows=23,298 width=16) (actual time=1.442..1.442 rows=1 loops=1)

  • Sort Key: t_19."time" DESC
  • Buffers: shared hit=153
26. 0.082 0.082 ↑ 39.0 1 1

Index Scan Backward using _hyper_1_2034_chunk_symbol_time on _hyper_1_2034_chunk t_19 (cost=0.43..1,172.93 rows=39 width=16) (actual time=0.082..0.082 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
27. 0.091 0.091 ↑ 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.091..0.091 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
28. 0.097 0.097 ↑ 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.097..0.097 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
29. 0.081 0.081 ↑ 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.081..0.081 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
30. 0.070 0.070 ↑ 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.070..0.070 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
31. 0.092 0.092 ↑ 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.092..0.092 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
32. 0.074 0.074 ↑ 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.074..0.074 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=8
33. 0.083 0.083 ↑ 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.083..0.083 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
34. 0.104 0.104 ↑ 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.104..0.104 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
35. 0.094 0.094 ↑ 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.093..0.094 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
36. 0.088 0.088 ↑ 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.087..0.088 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
37. 0.081 0.081 ↑ 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.081..0.081 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
38. 0.079 0.079 ↑ 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.079..0.079 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
39. 0.094 0.094 ↑ 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.094..0.094 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
40. 0.097 0.097 ↑ 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.097..0.097 rows=1 loops=1)

  • Index Cond: (("time" > (now() - '1 mon'::interval)) AND ((symbol)::text = (s.symbol)::text))
  • Buffers: shared hit=9
41. 0.061 0.061 ↑ 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.061..0.061 rows=1 loops=1)

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

Index Scan Backward using _hyper_1_2050_chunk_symbol_time on _hyper_1_2050_chunk t_35 (cost=0.43..38,622.06 rows=1,366 width=16) (actual time=0.073..0.073 rows=1 loops=1)

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