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

百万级聊天系统:聊天历史表的分片键该如何选择?

百万级聊天历史的分片键选择困惑

我正在设计一款需要保存聊天历史的聊天系统,系统拥有大量日活用户,聊天历史记录规模将达百万级,因此打算对存储表进行分片,但一直确定不了合适的分片键。

我曾考虑用senderId+receiverId作为分片键,这种设计下每个用户对应独立分片,分片数量等于用户总数,用户可以在自己的分片内快速检索聊天历史,但该方案存在不少弊端,比如热点问题——某用户聊天历史过多会导致对应分片负载过高。

对应的消息实体类定义如下:

class Message {
   @PrimaryKey
   private UUID messageId;
   private UUID senderId;
   private UUID receiverId;
   private String message;
   private MetaData metaData; 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 06:14:51