隨著乙個**的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策略來改變現狀。讀寫分離現在被大量應用於很多大型**,這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用quest share plex 來實現主從複製資料。
讀寫分離簡單的說是把對資料庫讀和寫的操作分開對應不同的資料庫伺服器,這樣能有效地減輕資料庫壓力,也能減輕io壓力。主資料庫提供寫操作,從資料庫提供讀操作,其實在很多系統中,主要是讀的操作。當主資料庫進行寫操作時,資料要同步到從的資料庫,這樣才能有效保證資料庫完整性。quest shareplex就是比較牛的同步資料工具,聽說比oracle本身的流複製還好,mysql也有自己的同步資料技術。mysql只要是通過二進位制日誌來複製資料。通過日誌在從資料庫重複主資料庫的操作達到複製資料目的。這個複製比較好的就是通過非同步方法,把資料同步到從資料庫。
主資料庫同步到從資料庫後,從資料庫一般由多台資料庫組成這樣才能達到減輕壓力的目的。讀的操作怎麼樣分配到從資料庫上?應該根據伺服器的壓力把讀的操作分配到伺服器,而不是簡單的隨機分配。mysql提供了mysql-proxy實現讀寫分離操作。不過mysql-proxy好像很久不更新了。oracle可以通過f5有效分配讀從資料庫的壓力。
[img]
ebay的讀寫分離(網上找到就拿來用了)
[img]
mysql的讀寫分離
上面說的資料庫同步複製,都是在從同一種資料庫中,如果我要把oracle的資料同步到mysql中,其實要實現這種方案的理由很簡單,mysql免費,oracle太貴。好像quest shareplex也實現不了改功能吧。好像現在市面還沒有這個工具吧。那樣應該怎麼實現資料同步?其實我們可以考慮自己開發一套同步資料元件,通過訊息,實現非同步複製資料。其實這個實現起來要考慮很多方面問題,高併發的問題,失敗記錄等。其實這種方法也可以同步資料到memcache中。聽說oracle的stream也能實現,不過沒有試過。
資料庫讀寫分離
隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share p...
資料庫讀寫分離
隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share p...
資料庫讀寫分離
隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策 略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share ...