写点什么

模块八 消息队列 mysql 存储表结构设计

作者:家有两宝
  • 2023-07-20
    四川
  • 本文字数:331 字

    阅读完需:约 1 分钟

字段如下:

1、id bigint 主键,自增长 不可为空

2、msg_context varchar(100) 消息内容 不可为空,无默认值

3、queue_name char(20) 消息名称,不可为空

4、status tiyint 消息状态,1 未发送,2,已发送,3,发送失败 不可为空,无默认值

5、create_time 创建时间,默认值为 now(),不可为空


status 和 queue_name 及 create_time 创建一个联合升序索引,因为 status 在一般情况下不能用于创建索引,因为数据区分度低,但是在这里存在热点数据,所以区分度相当高了,我们查询最老的一条没发送的数据,就可以使用,这里使用了三个字段做联合查询,是因为这个查询用了三个字段,这样就可以使用到索引查询

select * from table1 where status=1 and queue_name='名称' order by create_time asc limit 1

当然一次取多条也是可以的

用户头像

家有两宝

关注

还未添加个人签名 2023-05-15 加入

还未添加个人简介

评论

发布
暂无评论
模块八 消息队列mysql存储表结构设计_#架构训练营_家有两宝_InfoQ写作社区