timescaledb 和 原生postgresql 常见场景查询效率对比

2022-05-12 00:00:00 函数 执行 执行时间 计划 间隔

对比环境

1000w数据记录的表(这个小数量级的,性能差距可能不明显。但从执行计划中能看出timescaledb随数据量增大,性能稳定的原因),两张表均也添加所需要的索引。monitor_data(通过上篇文章可知,实际数据都存储在分区表中,所以只有40k) 是 timescaledb 创建的 hypertablemonitor_data_pg 是 pg 原生的表。

对比环境

1、pg 原生函数,timescaledb 做了优化

移动平均查询

实际执行时间(ms)
timescaledb hypertable8057
pg 原生表7793
-- timescaledb hypertable
SELECT data_time, AVG(level) OVER(ORDER BY data_time
      ROWS BETWEEN 9 PRECEDING AND CURRENT ROW)
    AS smooth_temp,
       level
  FROM monitor_data
  where data_time > '2021-01-01' and data_time < '2021-07-01'
  ORDER BY data_time DESC;

相关文章