概念:
「讀寫分離」就是將資料庫分為主從庫,乙個主庫用於寫資料,多個從庫用於完成讀資料的操作,主從庫之間通過某種機制進行資料同步,是一種常見的資料庫架構。
資料庫分組架構解決什麼問題?
大部分的網際網路業務,往往都是讀多寫少,資料庫的讀首先會成為資料庫的瓶頸。這時我們就希望能夠線性的資料庫提高讀效能,消除讀寫鎖衝突從而提高資料庫的寫效能,那麼就可以使用**「分組架構」**。
用一句話概述,讀寫分離就是解決資料庫的讀效能瓶頸的。
在網際網路的引用情景,常常資料量大、併發量大、高可用要求高、一致性要求高,使用「讀寫分離」就需要
注意問題:
1、資料庫連線池要進行區分,哪些是讀連線池,哪個是寫連線池,研發的難度會增加;
2、為了保證高可用性,讀連線池要能夠實現故障自動轉移;
3、主從的一致性問題需要考慮
在這麼多的問題需要考慮的情況下,如果我們僅僅是為了解決「資料庫讀的瓶頸問題」,為什麼不選擇使用快取呢?
為什麼使用快取???
快取,也是網際網路中常常使用到的一種架構方式;與「讀寫分離」不同,「讀寫分離」是通過多個讀庫,分攤了資料庫讀的壓力;而快取則是通過將查詢結構進行快取,減少了查詢對資料庫的查詢操作,減少了資料庫的查詢壓力。他們沒有誰取代誰的說法,但是如果在快取和讀寫分離進行二選一,優先選擇快取。
為什麼呢?
1、快取的開發比較容易,大部分的讀操作都可以先進去快取查詢,找不到再滲透到資料庫中;
2、快取的使用成本低於「讀寫分離」的分組架構。
當然,如果我們已經使用到了快取,但是讀依靠還是瓶頸的話,就可以選擇「讀寫分離」的分組架構了。簡單來說,我們可以將讀寫分離看做為快取解決不了時的一種解決方案。
當然,快取不是沒有缺點的。
對於快取,我們必須要考慮要就是高可用;不然如果我們的快取一旦掛掉,所有的流量都會聚集到資料庫上,那麼我們的資料庫是肯定會掛掉。
對於常用的的資料庫瓶頸是什麼
其實就是資料容量的瓶頸,例如訂單表,資料量是只增不減的,而且增長的速度也是非常快的,歷史資料又必須儲存,非常容易成為效能瓶頸,那麼如果解決這種問題呢,「讀寫分離」和快取往往是不適合的,最適合的是 水平切分(分庫分表);
什麼是數水平切分據庫?(概念)
是一種常見的資料庫架構,是一種通過演算法,將資料庫進行分割的架構。乙個水平切分集群中的每個資料庫,通常稱為「切片」。每乙個切片的資料是沒有重合,所有分片的資料並集組成所有的資料。
水平切分架構解決什麼問題呢?
大部分的網際網路業務,資料量是非常大的,單庫容量是最容易稱為瓶頸的,當我們的容量稱為瓶頸,我們希望提高我們的讀效能,降低單錶的容量的話,就可以採用水平切分構架了。
因為水平切分之後,我們要查詢的資料量會降低,因此查詢的效率提公升,進而提高我們系統的效能,一定程度上提高我們系統的併發量、高可用性。
資料庫的垂直切分和水平切分
分類 資料庫技術 2013 04 08 22 39 664人閱讀收藏 舉報資料切分可以是物理上的,對資料通過一系列的切分規則將資料分布到不同的db伺服器上,通過路由規則路由訪問特定的資料庫,這樣一來每次訪問面對的就不是單台伺服器了,而是n臺伺服器,這樣就可以降低單台機器的負載壓力。數據切分也可以是資...
資料庫的垂直切分和水平切分
資料切分可以是物理上的,對資料通過一系列的切分規則將資料分布到不同的db伺服器上,通過路由規則路由訪問特定的資料庫,這樣一來每次訪問面對的就不是單台伺服器了,而是n臺伺服器,這樣就可以降低單台機器的負載壓力。數據切分也可以是資料庫內的,對資料通過一系列的切分規則,將資料分布到乙個資料庫的不同表中,比...
MyCat讀寫分離和分庫
學習主題 mycat 學習目標 1 掌握mycat的配置規則 2 掌握mycat配置讀寫分離 3 掌握mycat分片分庫 1 的作用是什麼?配置分片規則 2 中name屬性的作用是什麼?屬性指定唯一的名字,用於標識不同的分片規則。內嵌的rule標籤則指定對物理表中的哪一列進行拆分和使用什麼分片演算法...