由 mysql的主從複制和讀寫分離 原理可知,所謂主從複制,按慣用的基于語句複制模式,是從庫将主庫的日志裡的各種SQL語句,在從庫重新執行了一遍。
這就引出一個問題,主從複制、讀寫分離,真的可以提高性能嗎?
如果一台機上的關系型資料庫,既要寫入資料,又要提供讀取服務,那麼在各種鎖機制之下,可以想見,效率一定不高。現在讀寫分離,主機寫,從機讀,聽上去真不錯。——但是,仔細一想,就覺得不對。主機隻有寫入,并無讀取,當然壓力較小;但從機一方面供外部讀取,一方面又要同步,同步機制仍然是執行SQL語句,這不是跟原來一樣了嗎?!
如果是一主多從,多台從機,可以利用負載均衡或路由算法,減輕壓力,但如果是隻有一台從機,那麼從機的壓力豈不是跟原來一樣?
唯一得到的好處,是外部寫入資料速度會快一些,因為外部隻寫入主庫,沒有讀取。
不過,按照常理分析,主從複制、讀寫分離機制能夠盛行,肯定是有比較明顯的好處的,就算是一主一從,性能也一定不會像我想的那樣沒有提高。