timescaledb 和 原生postgresql 常见场景查询效率对比
1000w数据记录的表(这个小数量级的,性能差距可能不明显。但从执行计划中能看出timescaledb随数据量增大,性能稳定的原因),两张表均也添加所需要的索引。monitor_data(通过上篇文章可知,实际数据都存储在分区表中,所以只有40k) 是 timescaledb 创建的 hypertable,monitor_data_pg 是 pg 原生的表。
1、pg 原生函数,timescaledb 做了优化
移动平均查询
实际执行时间(ms) | |
---|---|
timescaledb hypertable | 8057 |
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;
相关文章