架构实战营模块八:课后作业
设计消息队列存储消息数据的 MySQL 表格。
【作业要求】
包括表名、字段、索引;
用文字描述设计思路和理由,例如:为什么设计某个索引?
一页 PPT 即可。
【提示】需要考虑每个消息队列一张表,还是所有消息放一张表,里面加一个“队列名称”的字段。
采用每个队列一个表,表名格式: t_queue_{队列名称}
字段: id、key、data、date
索引:ID、key 分别 2 个索引(ID 是必须创建的主键索引,key 是为了查询某一类 key 的消息)
分析:
采用每个消息队列一张表,那么数据库表将无限的动态创建,能支持无限给队列的创建,而且对于高峰期间,队列相互独立,不会产生性能影响。 而且数据量小,查询速度相对较快。很容易做分库分表,因为队列名称是一个很好的关键数据。
采用单独一张表,大量并发时会又性能影响,查询速度慢,各不同队列之间相互影响,容易造成雪崩效应。如做水平分库分表的话,还需要根据分库规则进行拆分和查询,相对复杂。
评论