---

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

keywords:

  • ClickHouse
  • MergeTree
  • 分区
  • 索引
  • TTL

description: 基于 MergeTree 家族的存储引擎,优化分区与主键、索引与 TTL,提升分析查询性能并提供可验证方法。

date: 2025-11-26

tags:

  • ClickHouse
  • MergeTree
  • TTL
  • 分区
  • 分析型
  • 性能优化
  • 数据库
  • 索引

categories:

  • 文章资讯
  • 编程技术

---

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 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部