垂直拆分和水平拆分

2021-09-20 12:56:52 字數 931 閱讀 5100

前言

做資料庫分表的時候,總是能看到水平切分、垂直切分,但是並不能理解何為水平、何為垂直。僅此做個記錄。

一般情況下說的水平切分、垂直切分,都是指的資料庫層面的。

隨著業務量的增加,資料量肯定快速增長,拿mysql來說,單錶資料量在百萬級內讀取效率還是可以的,可是一旦達到千萬級,效能會有較大的降低。如果是複雜的搜尋,那麼組合索引對於記憶體來說也是一筆很大的開銷。這個時候就需要從資料庫層面來進行優化了。

普遍採用的方式就是資料庫 垂直切分+ 水平切分的方式來進行改進。

垂直拆分:原來乙個表的資訊,拆分到兩個或者多個表中,通過主鍵來進行關聯。(垂直拆分列,列資料拆分到不同表中)

垂直切分的優點

垂直切分的缺點

水平切分:把乙個表的資料按照某種規則劃分到不同表或資料庫裡。(水平拆分行,行資料拆分到不同表中)

水平切分的優點

水平切分的缺點

一般情況下說的水平擴充套件、垂直擴充套件,都是指的服務層面的。

當乙個開發人員提公升計算機系統負荷時,通常會考慮兩種方式垂直擴充套件和水平擴充套件。選用哪種策略主要依賴於要解決的問題 以及系統資源的限制。

在垂直擴充套件模型中,想要增加系統負荷就意味著要在系統現有的部件上下工夫,即通過提高系統部件的能力來實現。

比如增加機器的記憶體,提高單機處理能力,拆分功能到不同的機器上部署等等。

垂直擴充套件旨在提高自身效率,但總會遇到自身的瓶頸。

在水平擴充套件模型中,通過增加更多的系統成員來實現。也就是通常所說的加機器。

當你的大量請求併發的時候,可以通過分布式的方式,讓請求均勻的分布到不同的機器上,減小壓力。

簡而言之:

垂直擴充套件:拆分功能為小功能,來轉移壓力的發生。

水平擴充套件:複製相同的表、庫、伺服器來共同承擔壓力。

水平拆分和垂直拆分

網際網路時代談論最多的話題就是拆分。拆分一般分為水平拆分和垂直拆分,這並不單指對資料庫或者快取的拆分,主要是表達一種分而治之的思想。水平拆分是指由於單一節點無法滿足需求,需要擴充套件為多個節點,多個節點具有一直的功能,組成乙個服務池,乙個節點服務一部分請求量,所有節點共同處理大規模高併發的請求量。垂...

Mysql 水平拆分和垂直拆分

1,水平分割 例 qq的登入表。假設qq的使用者有100億,如果只有一張表,每個使用者登入的時候資料庫都要從這100億中查詢,會很慢很慢。如果將這一張表分成100份,每張表有1億條,就小了很多,比如qq0,qq1,qq1.qq99表。使用者登入的時候,可以將使用者的id 100,那麼會得到0 99的...

垂直拆分與水平拆分

垂直拆分 垂直拆分是指資料表列的拆分,把一張列比較多的表拆分為多張表 通常我們按以下原則進行垂直拆分 把不常用的字段單獨放在一張表。把text,bigint等大字段拆分出來放在附表中。經常組合查詢的列放在一張表中 聯合索引 垂直拆分的表在查詢的時候用join關鍵字連線起來即可。水平拆分 水平拆分是指...