写点什么

作业八:设计消息队列存储消息数据的 MySQL 表格

发布于: 刚刚

【作业要求】

1. 包括表名、字段、索引;

2. 用文字描述设计思路和理由,例如:为什么设计某个索引?

3. 一页 PPT 即可。


【提示】1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。

思路:

使用一个消息队列对应一张表,原因是:

a)这里我们假设需要处理大量的消息,如果放在同一张表会影响性能。

b)避免来自不同的消息队列操作互相干扰,例如要删除历史数据,可能会影响同一张的写入。

c)一般不需要同时读取不同的消息队列数据,所以可以分成不同的表,因为不需要去执行不同 table 的 join。


表格设计

消息表:



这里创建时间和生产者的 ID 都有索引,方便 consumer 查询需要消费的消息。


消费表:



这里记录客户端读取消息的记录。为了方便过后查询历史记录,所以 message_id,consumer_id 和 consumed_status 都做了索引。




用户头像

还未添加个人签名 2020.10.16 加入

还未添加个人简介

评论

发布
暂无评论
作业八:设计消息队列存储消息数据的 MySQL 表格