架构实战营 模块八
设计消息队列存储消息数据的 MySQL 表格
消息数据表结构设计
表名说明
采用每个消息队列一张表,表后缀使用 队列的唯一标识(消息队列名称或队列唯一 id),
将每个消息队列单独存放一张表,可以减小单表数据量,提高数据库查询效率
字段说明
id:使用自增 id 作为主键,可以使用该 id 来记录消费者消费的位置,消费者查询新的消息可以直接采用where id>=#{已消费的id}
,主键查询效率是最高的
content:消息内容,用于存放消息的具体数据,采用 text 存储
create_time: 使用毫秒时间戳来记录消息的创建时间,该字段添加 普通索引。消息队列需要定期将历史消息清除(如果是重要业务可以单独备份),否则当数据量大到一定程度时会导致查询速度过慢,使用 create_time 可以快速定位指定时段的数据,用于备份或删除
索引设计
id:主键索引,使用自增 id
create_time: 普通索引
评论