mysql垂直分表和水平分表和分表的跨表查詢


分表原則:避免跨表操作,讓業務的操作盡可能在一個表中完成,如果要跨表,只能說明分法不合理,如果真的有些業務場景要跨表,可以做副本冗余。

垂直分表:

一般就是將主鍵+常用字段列 放在一張表,主鍵+不常用列 放在另外一張表。

根絕自己業務需求,區分常用字段和不常用字段來分表。盡量避免join和union查詢,如果這樣的操作很多,說明分法不合理。

水平分表:

常見的幾種水平分表法:

  • 按時間分:新聞類,朋友圈動態,微博最新動態等關注實時的,可以按月份划分,一個月一張表。
  • 按區間分:每個表的自增id,按id的區間來划分,如1~1000一張表,1001~2000一張表。涉及到刪除數據,一般刪除數據做狀態修改,只是物理刪除。
  • 按hash值分:表的唯一值如用戶id ,對用戶id取模,然后MD5處理用戶id,截取多少位做字段存儲唯一值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM