模块八
1.采用所有的消息存入一个表,表里加个队名名称字段,如果每个队列一个表,数据量会出现分布不均匀,造成个别队列的表数据量特别大,个别特别小,影响查询
2.采用一个表存储所有的消息,如果数量量特别大,采用水平分表,根据消息 id 来 hash 分表,预估消息量,比如用消息 id 对 16(预估数字)取模,表名称就是 message_1,mesage_2 ...等
3.表结构如下
id 雪花 id long
topic_id 队列 id varhcar(64)
message_id 消息 id varchar(64)
message_content 消息内容 text
satsus 消费状态 tinyint(1)
create_time 创建时间 datetime
update_time 更新时间 datetime
deleted 删除状态 tinyint(1)
索引:
topic_id+message_id 联合索引 做查询用,
masage_id 唯一索引 保证数据唯一
版权声明: 本文为 InfoQ 作者【侠客行】的原创文章。
原文链接:【http://xie.infoq.cn/article/cab6557e4d1e6b37b2da34b62】。未经作者许可,禁止转载。
评论