写点什么

模块 8 作业

作者:tony
  • 2022 年 2 月 27 日
  • 本文字数:504 字

    阅读完需:约 2 分钟

一、消息订阅与发布模型


二、存储引擎选择

【InnoDB】

支持事务(redo log)

B+ 树存储,支持行锁 提供更高的并发能力(建议单表 500 内最优,超过 2000 万树高可能会大于 3 层 会增加索引复杂度)

【MyISAM】

不支持事务

不支持行锁


结论:选择 InnoDB,通过事务保障数据的正确性,通过行锁提供更高的并发能力

三、表结构

【queue】

  • t_queue {

id int not null auto_increment comment '队列 ID',

queue_name varchar(32) not null comment '队列名称',

gmt_time timestamp not null comment '创建时间'

}

【消息 message】

  • t_message {

id bigint not null comment '消息 ID'(分布式唯一 ID),

queue_id not null int comment '队列 ID',

msg_content BLOB not null comment '消息体',

msg_state tinyint not null comment '消息状态:0、未消费 1、已消费',

gmt_time timestamp not null comment '创建时间'

}

索引:queue_id 与 msg_state 创建联合索引


【消费纪录】

  • t_sub_log {

id bigint not null auto_increment comment '消费日志 ID',

queue_id not null int comment '队列 ID',

msg_id bigint not null comment '消息 ID',

gmt_time timestamp not null comment '创建时间'

}

索引:msg_id 与 queue_id 创建联合索引


发布于: 刚刚阅读数: 7
用户头像

tony

关注

还未添加个人签名 2018.01.04 加入

还未添加个人简介

评论

发布
暂无评论
模块 8 作业