首页/数据/数仓建模速查/ClickHouse 排序键与稀疏索引
湖仓与引擎63 条

ClickHouse 排序键与稀疏索引

ORDER BY 决定数据物理顺序并生成稀疏主键索引:把高频过滤列放前面、基数列放后面,范围过滤才能命中索引减少扫描。

数仓建模速查数据更新于 2026-10-12
作用物理顺序+索引
顺序高频过滤在前
粒度默认 8192 行一个 granule
验证EXPLAIN/查询耗时

排序键设计

排序键设计
CREATE TABLE dw.flow_event
(
  dt Date,
  store_id String,
  user_id String,
  event_time DateTime,
  event_type String
)
ENGINE = MergeTree
PARTITION BY dt
ORDER BY (store_id, event_time);
排序键改动需要新建表并重灌数据,属于结构性决策,上线前用真实查询验证。

易错点

  • 排序键把低基数列放前面,索引过滤效果差

数据来源与参考

  • ClickHouse 官方文档:Sparse Primary Indexes
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌