设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
【分析】
考虑到消息保存在 db 的时间可能会很长,如果放到单独一个表,单表数据量迟早会大到影响 db 的性能,因此可以按队列名称进行 hash,不同队列 hash 到不同表存储;也可以单独建立一个队列名称到消息表名的映射表每次读写先通过这个表获取到消息表的表名。简单起见先用队列名称 hash 进行分表。
【设计】
消息存储表:
id: 自增 主键
队列名称:索引
消息内容
插入时间
消息消费表:
id: 自增 逐渐
client_id: 索引
队列名称:索引
最后消费的 id
评论