TimescaleDB查询时列解压位置及IOPS影响,兼询ClickHouse相关情况
TimescaleDB 列解压与IOPS分析
- 列解压不在磁盘端执行:数据先从磁盘读取压缩块到内存,之后由CPU在内存中完成解压操作。
- 不会产生读取全量解压后数据的IOPS开销:TimescaleDB基于PostgreSQL,对超表(hypertables)的压缩是以数据块为单位的。查询时只会读取磁盘上的压缩数据块,而非解压后的完整数据——IO操作针对的是体积更小的压缩数据,相比未压缩场景,IOPS开销反而更低,根本不会触发读取全量解压后数据的动作。
ClickHouse 列解压与IOPS分析
- 列解压同样在内存中完成:磁盘仅存储和读取压缩后的列数据块,解压操作完全在内存里由CPU处理。
- 不存在读取全量解压后数据的IOPS开销:ClickHouse采用列级压缩,配合谓词下推、分区裁剪等优化,查询时只会读取符合过滤条件的压缩数据块,加载到内存后才解压对应部分。加上本身极高的压缩率,IOPS消耗被大幅降低,不会出现读取全量解压后数据的情况。
内容的提问来源于stack exchange,提问作者sm_
相关产品推荐
相关产品推荐

