写点什么

架构实战营 模块八作业

用户头像
孫影
关注
发布于: 11 小时前

初始設計

表名

Queue,因為一開始數據量並不大,根據簡單原則設計,可以將所有消息隊列的數據都儲存在同一張表中。

字段

  • id: 是自增長、不可重複、數字類型字段,用以紀錄進入消息隊列的順序。

  • queueName: 字串類型字段,消息隊列的名稱。

  • read: 布林類型字段,default 為 false,被讀取過後會改為 true。

  • createDate: 日期類型字段,用以紀錄數據進入消息隊列的時間。

  • data: byte array 類型字段,用以儲存消息隊列的數據。

索引

  • id + queueName: 用於要刪除整個隊列的數據時

  • id + queueNmae + read: 真實使用情境上,只會想查特定消息隊列內、還沒被讀取過的數據。

  • id + queueName + createDate: 用於要刪除過期數據時

演化設計

表名

隊列名稱作為表名,一個隊列一張表。


因為每個隊列的數據量不一樣,當資料量成長到需要分表分庫的階段時,應根據演化原則,將所有隊列數據切分到不同表中,除了能避免表操作的影響外,查詢速度也可以加快。

字段

  • id: 是自增長、不可重複、數字類型字段,用以紀錄進入消息隊列的順序。

  • read: 布林類型字段,default 為 false,被讀取過後會改為 true。

  • createDate: 日期類型字段,用以紀錄數據進入消息隊列的時間。

  • data: byte array 類型字段,用以儲存消息隊列的數據。

索引

  • id + read: 真實使用情境上,只會想查特定消息隊列內、還沒被讀取過的數據。

  • id + createDate: 用於要刪除過期數據時


发布于: 11 小时前阅读数: 5
用户头像

孫影

关注

还未添加个人签名 2021.06.11 加入

还未添加个人简介

评论

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