讀寫分離

1、爲什麼讀寫分離爲什麼能夠提高效率?因爲master需要與slave同步,這意味着在master所執行的(寫)的所有語句,都會在slave被執行一遍,這不是等於slave與master的負荷與讀的效率是一致的嗎?

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

  補充,MySQL複製另外一大功能是增加冗餘,提高可用性,當一臺數據庫服務器掛了後能通過調整另外一臺從庫來以最快的速度恢復服務,因此不能光看性能,也就是說1主1從也是可以的。


2、讀寫分離怎麼保證一致性

讀寫分離一般保證最終一致性(paxos算法),可以參考淘寶OceanBase的做法


發佈了5 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章