写点什么

设计消息队列存储消息数据的 MySQL 表格

作者:smile
  • 2022 年 4 月 17 日
  • 本文字数:276 字

    阅读完需:约 1 分钟

前提

【作业要求】

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

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

3. 一页 PPT 即可。


【提示】

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


思路

  1. 每个消息队列一张表,还是所有消息放一张表:建议每个消息队列一张表,考虑 MySQL 单表存储性能压力,分表存储即可

  2. 除了基础消息表外,还需要记录每个消费者的 offset,即消息记录表


表设计

消息表

mq_record_[topic_name]:


NOTE:

  • id:保证消息自增

  • created_time:保证及时清理数据


消息记录表

mq_offset:


NOTE:

  • 唯一索引:topic_name + consumer_id 保证消息唯一性及查询效率

用户头像

smile

关注

还未添加个人签名 2021.04.07 加入

还未添加个人简介

评论

发布
暂无评论
设计消息队列存储消息数据的 MySQL 表格_smile_InfoQ写作平台