資料庫分表策略

2022-04-04 07:27:04 字數 714 閱讀 5319

1  垂直劃分:

將資料表中的某些字段提出,組成新的資料表。「將群組id,**id,**id提出」,組成gzm資料表,而將「群組,**,**的詳細資訊單獨放在其他資料表中」。在求取索引、關係時,運算元據庫效率更高。

2  水平劃分:

2.1物理上的水平切分:即將資料分配到不同的db伺服器上。降低單點機器的負載。

2.2邏輯上的水平劃分:將資料分到同一資料庫的不同的資料表。多個資料表共同組成了乙個完整的資料表,提高資料操作的效率。當乙個有5000w行記錄的資料表被拆分為10個表,假設每個表均勻的有500w行記錄。10個表分表建索引的效率會提公升。

2.21取餘的方式:將資料均勻分到多個資料表中,資料表的個數固定,對於資料表的擴容困難。同時沒有考慮不同機器的負載能力。注意相關度大的資料盡可能分到同一張表。「將同乙個群組的所有**放到一張資料表中」,即以群組id來取餘。

2.22 除的方式:取出資料表中的某個字段,除以某個數(資料表的容量),根據除數分表,利於擴容,但資料分配可能不均勻。「將使用者id除以10000,為0則分到資料表0中,以此類推」。

2.23建立對映表的方式:不同規則對映不同資料表。在查詢資料庫時,先查對映表,再查具體的資料表,效率較低。

2.24按照時間分表:即按照一天、一周、乙個月、一年等分表。查詢時,資料跨越多張表時,會影響效率。

2.25將取餘和除的方式結合:舉例(當取餘的方式,資料庫容量滿時,如何擴容)

摘自 gls_liujia的專欄

資料庫分表策略

1 垂直劃分 將資料表中的某些字段提出,組成新的資料表。將群組id,id,id提出 組成gzm資料表,而將 群組,的詳細資訊單獨放在其他資料表中 在求取索引 關係時,運算元據庫效率更高。2 水平劃分 2.1物理上的水平切分 即將資料分配到不同的db伺服器上。降低單點機器的負載。2.2邏輯上的水平劃分...

資料庫分表策略

1 垂直劃分 將資料表中的某些字段提出,組成新的資料表。將群組id,id,id提出 組成gzm資料表,而將 群組,的詳細資訊單獨放在其他資料表中 在求取索引 關係時,運算元據庫效率更高。2 水平劃分 2.1 物理上的水平切分 即將資料分配到不同的db伺服器上。降低單點機器的負載。2.2 邏輯上的水平...

資料庫分庫分表策略

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