ClickHouse 性能优化(MergeTree、分区与索引、TTL 与聚合)

关键实践与参数

  • 分区键:按时间或业务维度分区,提升裁剪与维护效率。
  • 主键与排序键:决定数据组织与跳过索引;提高范围查询性能。
  • 索引:data skipping indices(minmax、set、bloom)减少扫描。
  • TTL:对历史数据自动归档或删除,控制存储成本。

示例


CREATE TABLE events (
  ts DateTime,
  user_id UInt64,
  action String
) ENGINE = MergeTree
PARTITION BY toYYYYMM(ts)
ORDER BY (ts, user_id)
SETTINGS index_granularity = 8192;

验证方法

  • EXPLAINsystem.query_log 观察读取行数与裁剪效果。
  • 比较启用跳过索引前后耗时与扫描比例。
  • TTL 生效与分区数据归档比例统计。

注意事项

  • 过细分区导致元数据膨胀;控制粒度并合并。
  • 跳过索引并非总是收益;按数据分布选择类型。
  • 写入批量与压缩策略影响吞吐与查询表现。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部