顧名思義,即把存於一個庫的數據分散到多個庫中,把存於一個表的數據分散到多個表中。數據庫
當一個數據庫被建立以後,隨着時間的推移和業務量的增長,數據庫中表以及表中的數據量就會愈來愈多,就有可能出現兩種弊端:(1)數據庫的存儲資源是有限的,其負載能力也是有限的,數據的大量積累確定會致使其處理數據的能力降低;(2)數據量越多,那麼對數據的增刪改查操做的開銷也會愈來愈大,因此,當出現如上兩種狀況,分庫分表勢在必行。資源
(1)垂直切分請求
適用場景:若是是由於表的個數多而讓數據多,能夠按照功能劃分,把聯繫密切的表切分出來放在同一個庫中(分庫);數據
若是表的字段太多,能夠以列爲出發點,將字段進行拆分(分表);查詢
(2)水平切分集合
適用場景:若是是由於表中的數據量過於龐大,則能夠採用水平切分,按照某種約定好的規則將數據切分到不一樣的數據庫中;時間
必需要根據當前數據庫的狀況作出合適的選擇,也能夠將兩種狀況結合在一塊兒。
分庫分表的結果會使數據分散,很差查詢,主要有兩種查詢方式:
(1)、分步查:先查找主表,而後獲得關聯表的id,再發起請求獲得關聯數據;
(2)、聯合查:同時發起多個查詢請求,而後將全部的結果集合起來。