Clickhouse(四)基本概念
1. 列式存储
- 图示
- 如上图所示,列式存储对于OLAP查询场景有很多优势
- 分析场景中往往需要读大量行但是少数几个列。在行存模式下,数据按行连续存储,所有列的数据都存储在一个bloCK中,不参与计算的列在IO时也要全部读出,读取操作被严重放大。而列存模式下,只需要读取参与计算的列即可,极大的减低了IO cost,加速了查询。
- 同一列中的数据属于同一类型,压缩效果显著。列存往往有着高达十倍甚至更高的压缩比,节省了大量的存储空间,降低了存储成本。
- 不同列的数据具有不同的数据类型,适用的压缩算法也就不尽相同。可以针对不同列类型,选择最合适的压缩算法。
- 更高的压缩比意味着更小的data size,从磁盘中读取相应数据耗时更短。
- 高压缩比,意味着同等大小的内存能够存放更多数据,系统cache效果更好。
- 通过使用列存,在某些分析场景下,能够获得100倍甚至更高的加速效应。
以上总结,clickhouse对CPU的占用很可能会大于磁盘IO,因为广泛采用数据压缩的后果就是需要占用大量CPU资源进行数据压缩和解压缩。同时考虑到clickhouse本身会默认占用一般服务器CPU核数,对CPU的压力是很大的
注意&#x