如何提升大型網站的訪問速度,根據理解和經驗通常經常使用的方法如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的鏈接參數便可。架構