作业:设计消息队列存储消息数据的 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 创建一个组合索引便于快速查询消费消息。
评论