水平拆分是指資料表行的拆分,表的行數超過200萬行時,就會變慢,這時可以把一張的表的資料拆成多張表來存放。
通常情況下,我們使用取模的方式來進行表的拆分;比如一張有400w的使用者表users,為提高其查詢效率我們把其分成4張表users1,users2,users3,users4
通過用id取模的方法把資料分散到四張表內id%4+1 = [1,2,3,4]
然後查詢,更新,刪除也是通過取模的方法來查詢。
水平拆分的優點:◆表關聯基本能夠在資料庫端全部完成;
◆不會存在某些超大型資料量和高負載的表遇到瓶頸的問題;
◆應用程式端整體架構改動相對較少;
◆事務處理相對簡單;
◆只要切分規則能夠定義好,基本上較難遇到擴充套件性限制;
水平切分的缺點:垂直拆分是指資料表列的拆分,把一張列比較多的表拆分為多張表。◆切分規則相對更為複雜,很難抽象出乙個能夠滿足整個資料庫的切分規則;
◆後期資料的維護難度有所增加,人為手工定位資料更困難;
◆應用系統各模組耦合度較高,可能會對後面資料的遷移拆分造成一定的困難。
這時需要把大的字段拆分到另乙個表,並且該錶與原表是一對一的關係。
通常我們按以下原則進行垂直拆分:
1,把不常用的字段單獨放在一張表;,
2,把text,blob等大字段拆分出來放在附表中;
3,經常組合查詢的列放在一張表中;
垂直切分的優點◆ 資料庫的拆分簡單明瞭,拆分規則明確;
◆ 應用程式模組清晰明確,整合容易;
◆ 資料維護方便易行,容易定位;
垂直切分的缺點◆ 部分表關聯無法在資料庫級別完成,需要在程式中完成;
◆ 對於訪問極其頻繁且資料量超大的表仍然存在效能平靜,不一定能滿足要求;
◆ 事務處理相對更為複雜;
◆ 切分達到一定程度之後,擴充套件性會遇到限制;
◆ 過讀切分可能會帶來系統過渡複雜而難以維護。
資料庫分庫分表
1 基本思想之什麼是分庫分表?從字面上簡單理解,就是把原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存到多個表上。2 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...
資料庫分庫 分表
分庫的優點是 實現簡單,庫與庫之間界限分明,便於維護,缺點是不利於頻繁跨庫操作,單錶資料量大的問題解決不了。分表的優點是 能解決分庫的不足點,但是缺點卻恰恰是分庫的優點,分表實現起來比較複雜,特別是分表規則的劃分,程式的編寫,以及後期的 資料庫拆分移植維護。實際應用中,一般網際網路企業的路線都是先分...
資料庫分庫分表
簡單了解資料庫分庫分表,以及資料庫的分片 什麼是分庫分表 原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存在到多個表上 為什麼分庫分表 當一張表的資料達到幾千萬時,你查詢一次所花的時間會變多,如果有聯合查詢的花,我想啃根會死在那。分表的目的就在於此,減少資料庫的負擔,縮短查...