1:参考 : ClickHouse Better Practices - 简书
数据类型:
- 不要全部设置成 String,能用数值、DateTime 就用,更快。
- 不要允许为 Nullable,Nullable 一方面需要额外创建文件存储NULL值的标记,一方面不能加入到索引中。(使用字段默认值或者无意义值)
- DateTime 类型,可读性佳、转换函数丰富、性能佳
分区和索引
- 分区的粒度必须与业务紧密结合,不宜过细也不宜过粗。看占比最大的查询,到底是小时级别还是天级别?(一般都是天级别的查询)
- 索引必须设置,且必须覆盖到绝大多数 SQL 查询中的 where条件中的字段,
- 索引是稀疏索引,不必考虑最左原则。
- 索引列的顺序建议是使用频率靠前的在前,基数大的在前。(但是基数特别大的不适合作为索引)
- (使用 counter_id和 date 作为索引,counter_id 在前,数据会先按照 counter_id排序,counter_id 相同的数据再按照 date 排序,排完序之后,根据索引粒度采样组成索引)
- 索引粒度不建议改,8192.