ClickHouse 实践经验

1:参考 :   ClickHouse Better Practices - 简书

数据类型:

  • 不要全部设置成 String,能用数值、DateTime 就用,更快。
  • 不要允许为 Nullable,Nullable 一方面需要额外创建文件存储NULL值的标记,一方面不能加入到索引中。(使用字段默认值或者无意义值)
  • DateTime 类型,可读性佳、转换函数丰富、性能佳

分区和索引

  • 分区的粒度必须与业务紧密结合,不宜过细也不宜过粗。看占比最大的查询,到底是小时级别还是天级别?(一般都是天级别的查询)
  • 索引必须设置,且必须覆盖到绝大多数 SQL 查询中的 where条件中的字段,
  • 索引是稀疏索引,不必考虑最左原则。
  • 索引列的顺序建议是使用频率靠前的在前,基数大的在前。(但是基数特别大的不适合作为索引)
  • ClickHouse 实践经验

    (使用 counter_id和 date 作为索引,counter_id 在前,数据会先按照 counter_id排序,counter_id 相同的数据再按照 date 排序,排完序之后,根据索引粒度采样组成索引)
  • 索引粒度不建议改,8192.
上一篇:Vue之自定义事件


下一篇:Python排序计数器之counter, sort和lambda