写点什么

模块八作业:设计消息队列存储消息数据的 MySQL 表格

作者:王大胖
  • 2022 年 4 月 11 日
  • 本文字数:687 字

    阅读完需:约 2 分钟

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

【作业要求】

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

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

3.一页 PPT 即可。

【提示】

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


一、表名、字段、索引

create table test.mqmessage(    id              bigint auto_increment        primary key,    producer_id     bigint        not null comment '生产者id',    consumer_id     bigint        null comment '消费者id',    message_id      bigint        not null comment '消息id,业务id',    message_type    varchar(10)   null comment '消息类型',    message_content varchar(2000) null comment '消息内容',    create_time     datetime      not null comment '创建时间',    update_time     datetime      not null comment '更新时间',    bz              varchar(300)  null comment '备注');
create index mqmessage_consumer_id_update_time_message_type_index on test.mqmessage (consumer_id, update_time, message_type);
create index mqmessage_producer_id_create_time_message_type_index on test.mqmessage (producer_id, create_time, message_type);



复制代码

二、文字描述设计思路和理由

采用每个消息队列一张表,减少设计的复杂度,易于维护和扩展,避免一个队列影响全局。

将 producer_id, create_time, message_type 创建一个组合索引便于快速查询生产消息。

将 consumer_id, update_time, message_type 创建一个组合索引便于快速查询消费消息。


用户头像

王大胖

关注

还未添加个人签名 2021.12.07 加入

还未添加个人简介

评论

发布
暂无评论
模块八作业:设计消息队列存储消息数据的 MySQL 表格_王大胖_InfoQ写作平台