# ClickHouse 性能优化(MergeTree、分区与索引、TTL 与聚合) ## 关键实践与参数 - 分区键:按时间或业务维度分区,提升裁剪与维护效率。 - 主键与排序键:决定数据组织与跳过索引;提高范围查询性能。 - 索引:`data skipping indices`(minmax、set、bloom)减少扫描。 - TTL:对历史数据自动归档或删除,控制存储成本。 ## 示例 ```sql 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; ``` ## 验证方法 - `EXPLAIN` 与 `system.query_log` 观察读取行数与裁剪效果。 - 比较启用跳过索引前后耗时与扫描比例。 - TTL 生效与分区数据归档比例统计。 ## 注意事项 - 过细分区导致元数据膨胀;控制粒度并合并。 - 跳过索引并非总是收益;按数据分布选择类型。 - 写入批量与压缩策略影响吞吐与查询表现。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部