You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何定义ClickHouse表的主键?特定业务场景下的主键选择咨询

表主键定义建议:视频小时级统计场景

核心结论

优先选择video_id + time作为主键,不需要加入type和uid。

具体分析

  • 主键唯一性的核心逻辑:你的业务是按视频+小时维度汇总plays,同一video_id在同一个小时维度的time下,只会存在一条有效统计记录(定期插入的是该小时的最新统计数据,不会重复插入同维度的重复数据),video_id + time的组合已经能完全保证主键的唯一性。
  • 为什么排除type和uid:这两个字段是视频的属性字段,同一个video_id对应的type(视频类型)和uid(上传者/归属用户)应该是固定不变的,不属于统计维度的必要组成部分。把它们加入主键只会造成冗余:
    • 增加索引的存储开销,降低查询效率;
    • 若后续出现视频属性变更(比如调整视频类型),会导致主键冲突,反而增加数据维护的复杂度。

额外优化建议

  • 给type和uid单独建立普通索引,方便后续按视频类型或用户维度做筛选统计;
  • 确保time字段统一为小时级精度(例如存储为yyyy-MM-dd HH:00:00格式的时间值),避免因时间精度不一致导致主键重复或统计维度错误。

内容的提问来源于stack exchange,提问作者lee3164

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 05:02:38