分庫分表是什麼,什麼情況下需要用分庫分表

2022-05-02 19:00:08 字數 573 閱讀 5056

顧名思義,即把存於乙個庫的資料分散到多個庫中,把存於乙個表的資料分散到多個表中。

當乙個資料庫被建立之後,隨著時間的推移和業務量的增加,資料庫中表以及表中的資料量就會越來越多,就有可能出現兩種弊端:(1)資料庫的儲存資源是有限的,其負載能力也是有限的,資料的大量積累肯定會導致其處理資料的能力下降;(2)資料量越多,那麼對資料的增刪改查操作的開銷也會越來越大,所以,當出現如上兩種情況,分庫分表勢在必行。

(1)垂直切分

適用場景:如果是因為表的個數多而讓資料多,可以按照功能劃分,把聯絡密切的表切分出來放在同乙個庫中(分庫);

如果表的字段太多,可以以列為出發點,將字段進行拆分(分表);

(2)水平切分

適用場景:如果是因為表中的資料量過於龐大,則可以採用水平切分,按照某種約定好的規則將資料切分到不同的資料庫中;

必須要根據當前資料庫的情況做出合適的選擇,也可以將兩種情況結合在一起。

分庫分表的結果會使資料分散,不好查詢,主要有兩種查詢方式:

(1)、分步查:先查詢主表,然後得到關聯表的id,再發起請求得到關聯資料;

(2)、聯合查:同時發起多個查詢請求,然後將所有的結果集合起來。

分庫分表是什麼,什麼情況下需要用分庫分表

顧名思義,即把存於乙個庫的資料分散到多個庫中,把存於乙個表的資料分散到多個表中。當乙個資料庫被建立之後,隨著時間的推移和業務量的增加,資料庫中表以及表中的資料量就會越來越多,就有可能出現兩種弊端 1 資料庫的儲存資源是有限的,其負載能力也是有限的,資料的大量積累肯定會導致其處理資料的能力下降 2 資...

什麼情況下,需要做血液透析?

血液透析 是 急慢性腎衰竭和其他一些嚴重疾病的重要方法。常見疾病的透析指徵如下 急性腎損傷 一 透析指徵 出現下列任何一種情況即可進行透析 一 血清肌酐 354umol l 4mg dl 或尿量 0.3ml kg h 持續24小時以上。二 高鉀血症,血清鉀 6.5mmol l。三 血hco3 15 ...

什麼情況下需要建立mysql索引

1 較頻繁地作為查詢條件的字段 這個都知道。什麼是教頻繁呢?分析你執行的所有sql語句。最好將他們乙個個都列出來。然後分析,發現其中有些欄位在大部分的sql語句查詢時候都會用到,那麼就果斷為他建立索引。2 唯一性太差的字段不適合建立索引 什麼是唯一性太差的字段。如狀態字段 型別字段。那些只儲存固定幾...