1.什麼是讀寫分離?
讀寫分離,基本的原理是讓主數據庫處理事務性增、改、刪操作(INSERT、UPDATE、DELETE),而從數據庫處理SELECT查詢操作。數據庫複製被用來把事務性操作導致的變更同步到集羣中的從數據庫。
2.讀寫分離的目的?
因爲數據庫的“寫”操作是比較耗時的,但是數據庫的“讀”耗時少。所以讀寫分離,解決的是,數據庫的寫入,影響了查詢的效率。
3.讀寫分離的應用背景
數據庫不一定要讀寫分離,如果程序使用數據庫較多時,而更新少,查詢多的情況下會考慮使用,利用數據庫主從同步 。可以減少數據庫壓力,提高性能。當然,數據庫也有其它優化方案。memcache 或是表折分,或是搜索引擎,都是解決方法。
4.讀寫分離原理
5.讀寫分離實現
主庫:172.25.60.2
從庫:172.25.60.3
mysql-proxy服務器:172.25.60.1
在mysql-proxy服務端:
安裝軟件(作軟連接):
編輯配置文件:
修改服務器數量,(實驗虛擬機只有兩臺):
權限太大,更改權限:
查看是否配置完成:
在主庫上新建一個可以使用數據庫的用戶:
刷新一下:
新建一個表用於實驗:
在mysql-proixy安裝監控軟件:
在測試主機上用dd用戶登錄數據庫,在監控上查看:
當出現sever3時表示讀寫分離可以實現了。
然後在測試主機上用dd用戶插入數據:
在主備庫上查看:
都能看到的原因時由於之前做了半同步複製。
關掉後 (stop slave),再插入數據:此時會發現寫入數據是在主庫上完成,但讀取數據是在備庫完成。