分庫分表的策略解析

2021-12-30 02:15:10 字數 527 閱讀 7221

分庫分表的策略。

??? 1. 中間變數 = user_id % (分庫數量 * 每個庫的表數量)

? ? 2. 庫 = 取整數 (中間變數 / 每個庫的表數量)

? ? 3. 表 = 中間變數 % 每個庫的表數量

????????假設將原來的單庫單錶order拆分成256個庫,每個庫包含1024個表,那麼按照前面所提到的路由策略,對於user_id=262145 的訪問,路由的計算過程如下:

????????1. ?中間變數 = 262145 % (256 * 1024) = 1

????????2. ?庫 = 取整 (1/1024) = 0

????????3. ?表 = 1 % 1024 = 1

????????這就意味著,對於user_id=262145 的訂單記錄的查詢和修改,將被路由到第0個庫的第1個order_1表中執行!!!

????? ? 分表:減少單錶的記錄條數,以便減少資料查詢所需要的時間,提高資料庫的吞吐

????? ? 分庫:在高併發場景下,緩解伺服器寫的壓力。

mysql分庫分表策略

一 分表 1 垂直拆分 根據表的字段數量 2 水平拆分規則 根據特定欄位取模,範圍,hash 二 分庫 1 垂直拆分 根據業務拆分 訂單資料過多時可給訂單單獨建立資料庫 2 水平拆分 垂直拆分後的資料庫根據規則進行水平拆分 如 訂單資料庫表的設計 不知道哪些查詢,拆分時可能規則不合理,會造成拆分後效...

mysql分庫分表的常見策略

0mysql集群,將sql請求分發到多個資料庫去,減少sql執行的等到時間 l拆分大資料表位若干表,比如事先建立n張結構相同的表,表名可以按照某種業務hash進行對映。缺點是規則的變化帶來的影響 2利用merge儲存引擎來實現分表 create table if not exists user1 i...

資料庫分庫分表策略

一 背景 系統剛開始的時候,資料庫都是單庫單錶結構。隨著業務量的增加進行第一次資料庫公升級,根據業務垂直拆分資料庫,這樣多變成多個業務資料庫,每個資料庫裡面還是單錶結構。接下來,繼續隨著業務量的繼續增加,單錶已經很難承受資料量,就要進行分表,這個時候就是,多個業務庫,每個業務庫下對需要分表的表進行分...