天天看點

mysql 讀寫分離 性能_讀寫分離為什麼能夠提升性能?

三 讀寫分離提高性能之原因

1.實體伺服器增加,負荷增加

2.主從隻負責各自的寫和讀,極大程度的緩解X鎖和S鎖争用

3.從庫可配置myisam引擎,提升查詢性能以及節約系統開銷

4.從庫同步主庫的資料和主庫直接寫還是有差別的,通過主庫發送來的binlog恢複資料,但是,最重要差別在于主庫向從庫發送binlog是異步的,從庫恢複資料也是異步的

5.讀寫分離适用與讀遠大于寫的場景,如果隻有一台伺服器,當select很多時,update和delete會被這些select通路中的資料堵塞,等待select結束,并發性能不高。 對于寫和讀比例相近的應用,應該部署雙主互相複制

6.可以在從庫啟動是增加一些參數來提高其讀的性能,例如--skip-innodb、--skip-bdb、--low-priority-updates以及--delay-key-write=ALL。當然這些設定也是需要根據具體業務需求來定得,不一定能用上

7.分攤讀取。假如我們有1主3從,不考慮上述1中提到的從庫單方面設定,假設現在1分鐘内有10條寫入,150條讀取。那麼,1主3從相當于共計40條寫入,而讀取總數沒變,是以平均下來每台伺服器承擔了10條寫入和50條讀取(主庫不承擔讀取操作)。是以,雖然寫入沒變,但是讀取大大分攤了,提高了系統性能。另外,當讀取被分攤後,又間接提高了寫入的性能。是以,總體性能提高了,說白了就是拿機器和帶寬換性能。MySQL官方文檔中有相關演算公式:官方文檔 見6.9FAQ之“MySQL複制能夠何時和多大程度提高系統性能”

8.MySQL複制另外一大功能是增加備援,提高可用性,當一台資料庫伺服器當機後能通過調整另外一台從庫來以最快的速度恢複服務,是以不能光看性能,也就是說1主1從也是可以的。