一、clickhouse索引
** 以下是总结的几点关于clickhouse索引的内容 **
| 1、clickhouse可以有多个Primary Key,而且Primary Key可以任意列(值可以重复); |
| 2、clickhouse数据默认按第一个主键排序,第一个主键相同的按第二个主键排序,依此类推; |
| 3、clickhouse按颗粒划分区间,默认颗粒大小是8092,10M;定位到区间后,颗粒内的数据并行进入clickhouse中进行分析处理。 |
| 4、clickhouse对第一个主键使用二分查找算法,所以基于它的过滤查找很快。 |
| 5、clickhouse对基于第二个主键过滤的查询使用通用排除搜索算法,当第一个主键基数较大时,查询性能不是很理想。 |
| 基于上面的情况,可以另外创建一个Projection(按照新的主键排序),projection会另外创建一个隐藏表,show tables时不可见。隐藏表和主表自动同步数据,且查询时会自动选择适合的表。 |
| 6、clickhouse压缩率极高;列的压缩率和主键基数的顺序有很大关系。当主键基数从小到大排序时压缩性能最好(此时物理上来看,相似数据靠的很近,更有利于压缩) |
| 7、clickhouse有时会有快速定位某一行的需求(虽然这不是clickhouse的针对应用场景),通常的做法是:为每一行生成一个UUID,然后UUID作为第一个主键,这样就可以根据UUID快速定位到某一行了。但是这样存在一个问题:每个UUID都不相同,主键基数很高不利于后面列值的压缩。所以使用局部敏感hash生成一个fingerprint,然后主键这种形式(fingerprint, UUID),再基于UUID进行查询。这样既兼顾了查询速度,又兼顾了压缩率。 |
原文链接:https://blog.csdn.net/qq_46480020/article/details/128231955
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)