讀寫分離能解決什麼問題

有些技術同學可能對“讀寫分離”瞭解不多,認爲數據庫的負載均衡都可以用“讀寫分離”來解決,這是非常大的一個誤區。

我們要用“讀寫分離”,首先要明白“讀寫分離”是做什麼的,而不是僅僅知道這個技術。

什麼是讀寫分離?

其實就是將數據庫分爲了主從庫,一個主庫用於寫數據,多個從庫用於讀數據(讀的操作比較多,所以常見設置一個或多個從庫),主從數據庫之間的數據通過某種機制保持同步,是一種常見的數據架構。

讀寫分離能解決什麼問題?

大多數互聯網業務,往往是讀多寫少,這時候,數據庫的讀首先會成爲數據庫的瓶頸。這時,如果我們希望能夠提升數據庫的性能,消除讀寫衝突從而提升數據庫的性能,這時候就可以使用讀寫分離。

用一句話概括,讀寫分離是用來解決數據庫的讀性能瓶頸的。

對於常見的數據庫瓶頸是什麼呢?

其實是數據容量的瓶頸。例如訂單表,數據量只增不減,歷史數據又必須要留存,非常容易成爲性能的瓶頸,而要解決這樣的數據庫瓶頸問題,“讀寫分離”和緩存往往都不合適,最適合的是什麼呢?

數據庫的水平切分

什麼是數據庫水平切分?

數據庫水平切分,也是一種常見的數據庫架構,是一種通過算法,將數據庫進行分割的架構。一個水平切分集羣中的每個數據庫,通常稱爲一個“分片”。每一個分片中的數據沒有重合,所有分片中的數據並集組成全部數據。

水平切分架構解決什麼問題呢?

大部分的互聯網業務,數據量都非常大,單庫容量最容易成爲瓶頸,當單庫的容量成爲了瓶頸,我們希望提高數據庫的寫性能,降低單庫容量的話,就可以採用水平切分了。

而有少部分程序員,會沒有分析數據庫的性能瓶頸是什麼,就貿貿然的使用“讀寫分離”,殊不知“水平切分”纔是正道。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章