模块八
作业:设计消息队列存储消息数据的 MySQL 表格
【作业要求】
1. 包括表名、字段、索引;
2. 用文字描述设计思路和理由,例如:为什么设计某个索引?
3. 一页 PPT 即可。
【提示】
1. 需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
1、消息生产者数据表设计
1.1、表设计如下:
索引如下:
id:主键 ID(主键)
create_time:普通索引(1、可按 create_time 分表;2、可按 create_time 定期清理过期数据)
producer+create_time:组合索引(方便查询该生成者生产的消息)
1.2、说明
每个消息队列对应一张 MySQL 表,表名为消息队列名称+producer,这样不同队列对应不同的表,避免队列产生相互影响,又减少单表数据量。
2、消息消费者数据表设计:
2.1、表设计如下:
索引如下:
id:主键 ID(主键)
message_id:外键索引,对应消息生产者自增 ID
consumer+consume_time:组合索引(方便查询该消费者消费的消息)
2.2、说明
1、每个消息队列对应一张 MySQL 表,表名为消息队列名称+consumer,这样不同队列对应不同的表,避免队列产生相互影响,又减少单表数据量。
评论