设计消息队列存储消息数据的MySQL表格
【作业内容】设计消息队列存储消息数据的MySQL表格
【作业要求】
1.包括表名、字段、索引;
2.用文字描述设计思路和理由,例如:为什么设计某个索引?
3.一页PPT即可。
【设计】
一、消息记录表
table name: mq_record_xx
id:自增id
msgId:消息id,唯一键
producer_id:生产者id
content:消息内容
create_time:消息创建时间
主键:自增id
唯一键:msgId
索引:index(msgId, content)
常用sql:
select content from mq_record_xx where msgId = ?
二、消息队列表(每个消息队列一个表)
table name:mq_topic_xx
id:自增id
msgId:消息id,与mq_record_xx关联
producer_id:生产者id,冗余存储
consumer_id:消费者id
create_time:创建时间
status:状态,0是未消费,1是消费
consume_time:消费时间
主键:自增id
索引:index(consumer_id,status)
常用sql:消费者获取下一条未被读取的消息
select * from mq_topic_xxx where consumer_id = A and status = 0 order by id asc limit 1