mysql讀寫分離

來源:互聯網
上載者:User

標籤:讀寫   應用   基礎   基本   客戶   tcp   寫入   提升   系統   

MySQL讀寫分離原理

MySQL的主從複製和MySQL的讀寫分離兩者有著緊密聯絡,首先部署主從複製,只有複製完了,才能在此基礎上進行資料的讀寫分離。

讀寫分離就是只在主伺服器上寫,只在從伺服器上讀,基本的原理是讓主要資料庫處理事務性查詢,而從資料庫處理select查詢,資料庫複寫被用來把事務性查詢導致的更新同步到叢集中的從資料庫。

實現步驟:通過centos系統虛擬機器搭建兩台伺服器,主伺服器和從伺服器,在Linux中通yum命令安裝MySQL,確保服務正常;修改伺服器server-id值,在從伺服器設定唯讀許可權,主伺服器寫入資料,從伺服器會更新同步。

三種複製方式:

1)同步複製

  主庫執行完一個事務,所有的從庫都執行了該事務才返回給用戶端。因為需要等待所有從庫執行完該事務才能返回,所以全同步複製的效能必然會受到嚴重的影響。需要有逾時時間。

2)非同步複製

  MySQL預設的複製即是非同步。主庫執行完用戶端提交的事務後會立即將結束返回給用戶端,並不關心從庫是否已經接收並處理,這樣就會有一個問題,主如果crash掉了,此時主上已經提交的事務可能並沒有傳上,如果此時,強行將從提升為主,可能導致新主上的資料不完整。

3)半同步複製

  介於非同步複製和全同步複製之間,主庫在執行完用戶端提交的事務後不是立刻返回給用戶端,而是等待至少一個從庫接收到並寫到relaylog中返回給用戶端。相對於非同步複製,半同步複製提高了資料的安全性,同時它也造成了一定程度的延遲,這個延遲最少是一個TCP/IP往返的時間。所以,半同步複製最好在低延遲時的網路中使用。

註:通過程式碼實現mysql讀寫分離自然是一個不錯的選擇,但是並不是所有的應用都適合在程式碼中實現讀寫分離,像一些大型複雜的java應用,如果在程式碼中實現讀寫分離對代碼改動就較大,像這種應用一般會考慮使用代理層來實現。

 

mysql讀寫分離

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.