資料庫分庫分表

2021-09-12 10:22:20 字數 1170 閱讀 1398

水平拆分是指資料表行的拆分,表的行數超過200萬行時,就會變慢,這時可以把一張的表的資料拆成多張表來存放。

通常情況下,我們使用取模的方式來進行表的拆分;比如一張有400w的使用者表users,為提高其查詢效率我們把其分成4張表users1,users2,users3,users4

通過用id取模的方法把資料分散到四張表內id%4+1 = [1,2,3,4]

然後查詢,更新,刪除也是通過取模的方法來查詢。

水平拆分的優點:

◆表關聯基本能夠在資料庫端全部完成;

◆不會存在某些超大型資料量和高負載的表遇到瓶頸的問題;

◆應用程式端整體架構改動相對較少;

◆事務處理相對簡單;

◆只要切分規則能夠定義好,基本上較難遇到擴充套件性限制;

水平切分的缺點:

◆切分規則相對更為複雜,很難抽象出乙個能夠滿足整個資料庫的切分規則;

◆後期資料的維護難度有所增加,人為手工定位資料更困難;

◆應用系統各模組耦合度較高,可能會對後面資料的遷移拆分造成一定的困難。

垂直拆分是指資料表列的拆分,把一張列比較多的表拆分為多張表。

這時需要把大的字段拆分到另乙個表,並且該錶與原表是一對一的關係。

通常我們按以下原則進行垂直拆分:

1,把不常用的字段單獨放在一張表;,

2,把text,blob等大字段拆分出來放在附表中;

3,經常組合查詢的列放在一張表中;

垂直切分的優點

◆ 資料庫的拆分簡單明瞭,拆分規則明確;

◆ 應用程式模組清晰明確,整合容易;

◆ 資料維護方便易行,容易定位;

垂直切分的缺點

◆ 部分表關聯無法在資料庫級別完成,需要在程式中完成;

◆ 對於訪問極其頻繁且資料量超大的表仍然存在效能平靜,不一定能滿足要求;

◆ 事務處理相對更為複雜;

◆ 切分達到一定程度之後,擴充套件性會遇到限制;

◆ 過讀切分可能會帶來系統過渡複雜而難以維護。

資料庫分庫分表

1 基本思想之什麼是分庫分表?從字面上簡單理解,就是把原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存到多個表上。2 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...

資料庫分庫 分表

分庫的優點是 實現簡單,庫與庫之間界限分明,便於維護,缺點是不利於頻繁跨庫操作,單錶資料量大的問題解決不了。分表的優點是 能解決分庫的不足點,但是缺點卻恰恰是分庫的優點,分表實現起來比較複雜,特別是分表規則的劃分,程式的編寫,以及後期的 資料庫拆分移植維護。實際應用中,一般網際網路企業的路線都是先分...

資料庫分庫分表

簡單了解資料庫分庫分表,以及資料庫的分片 什麼是分庫分表 原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存在到多個表上 為什麼分庫分表 當一張表的資料達到幾千萬時,你查詢一次所花的時間會變多,如果有聯合查詢的花,我想啃根會死在那。分表的目的就在於此,減少資料庫的負擔,縮短查...