首页/数据/数仓建模速查/事实表主键与索引选择
维度与事实设计149 条

事实表主键与索引选择

MPP 与列存下「主键」更多是语义约束:选择常过滤/常关联的列作为排序键(如 dt + user_id),提升裁剪与 join 效率。

数仓建模速查数据更新于 2026-10-12
语义主键业务唯一键
排序键过滤/关联高频列
引擎Doris/ClickHouse 显式排序键

Doris 排序键

Doris 排序键
CREATE TABLE fact_order (
  dt date, order_id varchar(64), user_id bigint, amount decimal(18,2)
) ENGINE = OLAP
DUPLICATE KEY(dt, order_id)
DISTRIBUTED BY HASH(order_id) BUCKETS 32;
排序键前缀顺序决定裁剪效果:把等值过滤列放前面,范围过滤列紧随其后。

易错点

  • 排序键列顺序随意,过滤无法裁剪
  • 把高基数列放排序键首位,收益低于预期

数据来源与参考

  • Apache Doris 官方文档:数据模型与排序键
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌