數據庫讀寫分離研究

如何提高大型網站的訪問速度,根據理解和經驗一般常用的方法如SQL優化、緩存、集羣等等,NewEgg的專家提示說做過大型網站的話應該知道數據庫讀寫分離的。

 

讀寫分離(Read/Write Splitting)”,基本的原理是讓主數據庫處理事務性查詢,而從數據庫處理SELECT查詢。數據庫複製被用來把事務性查詢導致的變更同步到集羣中的從數據庫。

對於大訪問量的網站,一般會採用讀寫分離,比如ebay的讀寫比率是260:1,也就是大型的電子商務網站的。

網上看到說採用讀寫分離有如下工具:
1,oracle的logical standby
2, Quest公司的SharePlex
3, DSG公司的RealSync

 

MySQL Replication可以將master的數據複製分佈到多個slave上,然後可以利用slave來分擔master的讀壓力。那麼對於前臺應用來說,就要考慮如何將讀的壓力分佈到多個slave上。如果每個應用都需要來實現讀寫分離的算法,一則成本太高,二來如果slave增加更多的機器,應用就要隨之修改。明顯的,如果在應用和數據庫間加一個專門用於實現讀寫分離的中間層,則整個系統的架構擁有更好的擴展性。MySQL Proxy就是這麼一箇中間層代理,簡單的說,MySQL Proxy就是一個連接池,負責將前臺應用的連接請求轉發給後臺的數據庫,並且通過使用lua腳本,可以實現複雜的連接控制和過濾,從而實現讀寫分離和負載平衡。對於應用來說,MySQL Proxy是完全透明的,應用則只需要連接到MySQL Proxy的監聽端口即可。當然,這樣proxy機器可能成爲單點失效,但完全可以使用多個proxy機器做爲冗餘,在應用服務器的連接池配置中配置到多個proxy的連接參數即可。


讀寫分離,不再依賴第三方工具實現,這樣更易於控制。mysql proxy使用過,感覺不穩定。

http://www.iteye.com/topic/768829

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