写点什么

模块八

作者:Only
  • 2022 年 2 月 26 日
  • 本文字数:376 字

    阅读完需:约 1 分钟

作业:设计消息队列存储消息数据的 MySQL 表格【作业要求】


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

  2. 用文字描述设计思路和理由,例如:为什么设计某个索引? 3. 一页 PPT 即可。


【提示】

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



表名:topic+partition

设计原因:

  1. 每个 topic 的消息数量是不一致的,如果分区是自定义规则的话,很有可能会出现数据倾斜,所以每个分区和 topic 设计为表名。

  2. 如果消息用同一个表,其中部分 topic 的消息过多,mysql 可能会出现基于 topic 来索引数据出现区分度过低,走全表扫描的情况,效率相较于用 topic 区分表的效率低。

  3. 针对业务板块,可能部分 topic 设计的业务优先级较高,使用 topic 区分,运维层面比单表更遍历

  4. 后期消息过多,单独基于时间的分库分表可能 TPS 不足,或者基于时间做分库分表时间不好把控。基于 topic 区分后,只需要关注消息量很大的 topic 对应的表来做设计。




发布于: 刚刚阅读数: 2
用户头像

Only

关注

还未添加个人签名 2020.05.27 加入

还未添加个人简介

评论

发布
暂无评论
模块八