---

title: ClickHouse 表引擎与排序键分区优化实战

keywords:

  • ClickHouse
  • MergeTree
  • 排序键
  • 分区
  • 聚合

description: 基于 MergeTree 的分区与排序键设计,提供建表与查询优化示例以提升读写与聚合性能。

tags:

  • ClickHouse
  • MergeTree
  • 分区
  • 性能优化
  • 排序键
  • 数据库
  • 聚合

categories:

  • 文章资讯
  • 编程技术

---

ClickHouse 表引擎与排序键分区优化实战

建表示例

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;

查询优化

SELECT count() FROM events
WHERE ts >= now() - INTERVAL 7 DAY AND action = 'login';

SELECT user_id, count() FROM events
WHERE ts >= now() - INTERVAL 1 DAY
GROUP BY user_id
ORDER BY count() DESC
LIMIT 20;

维护

  • 根据时间维度滚动分区,便于归档与清理
  • 合理设置 index_granularity 平衡扫描与索引体积

总结

通过时间分区与合适的排序键,可显著提升过滤与聚合效率。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部