当前位置:网站首页>模块八
模块八
2022-07-31 09:20:00 【InfoQ】
作业:设计消息队列存储消息数据的 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,这样不同队列对应不同的表,避免队列产生相互影响,又减少单表数据量。
边栏推荐
猜你喜欢
随机推荐
【问题记录】TypeError: eval() arg 1 must be a string, bytes or code object
Flink1.15 source code reading - PER_JOB vs APPLICATION execution process
postgresql generate random date, random time
【软考软件评测师】2012综合知识历年真题
Flink1.15源码阅读——PER_JOB vs APPLICATION执行流程
OpenGL es 初识
js空气质量aqi雷达图分析
Modular specifications
如何将虚拟机上的文件复制到主机上
MySQL----多表查询
多个js雷达图同时显示
loadrunner-controller-场景执行run
A Spark SQL online problem troubleshooting and positioning
Mysql+Navicat for Mysql
[NLP] Interpretation of Transformer Theory
期刊投递时的 Late News Submission 是什么
零代码工具推荐 八爪鱼采集器
SQL join table (inner join, left join, right join, cross join, full outer join)
一些计时软件,生产力工具
UE4插件软链接(关联)









