Bootstrap

设计消息队列存储消息数据的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