写点什么

架构实战营模块八:课后作业

用户头像
唐江
关注
发布于: 4 小时前

设计消息队列存储消息数据的 MySQL 表格。

【作业要求】

  1. 包括表名、字段、索引;

  2. 用文字描述设计思路和理由,例如:为什么设计某个索引?

  3. 一页 PPT 即可。

【提示】需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。


采用每个队列一个表,表名格式: t_queue_{队列名称}

字段: id、key、data、date

索引:ID、key 分别 2 个索引(ID 是必须创建的主键索引,key 是为了查询某一类 key 的消息)


分析:

采用每个消息队列一张表,那么数据库表将无限的动态创建,能支持无限给队列的创建,而且对于高峰期间,队列相互独立,不会产生性能影响。 而且数据量小,查询速度相对较快。很容易做分库分表,因为队列名称是一个很好的关键数据。


采用单独一张表,大量并发时会又性能影响,查询速度慢,各不同队列之间相互影响,容易造成雪崩效应。如做水平分库分表的话,还需要根据分库规则进行拆分和查询,相对复杂。


用户头像

唐江

关注

还未添加个人签名 2020.02.19 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块八:课后作业