相信作為乙個伺服器端開發者,資料庫是「必修的一門課」,今天主要講講什麼是資料庫的主從同步,讀寫分離。
在*古代*,網際網路剛起步的時候,資料庫中儲存的資料是很小的,一台資料庫完全可以搞定一切,隨著時間的推移,網際網路作為連線一切的中介,世界上任何乙個地方的人都可以訪問你的**,並且隨著網際網路經濟的急速擴張,資料量大成為了隨之而來的問題。尤其是今天,資料代表著乙個公司的價值,有價值的資料代表著這個公司的未來發展戰略等。
資料量的急速膨脹帶來乙個主要矛盾,資料庫改怎麼進行儲存成了最棘手的問題,前輩們想出了主從複製這樣乙個及其優雅的處理方式。
那麼什麼是主從複製?
主從複製指的是資料庫以主資料庫和從資料庫 的方式進行架構。通過「複製」使從資料庫和主資料庫完全一樣。主資料中的資料當然是我們通過業務來增加,那麼從資料庫中的資料從何而來呢?在資料庫中,每執行一條sql,都會產生對應的bin-log二進位制檔案。從資料庫賦值每一條sql。然後從資料庫中設定relay-log日誌檔案執行這些sql,這樣從資料庫中會有和主資料庫中同樣的資料。
那麼主從複製有什麼樣的有點和好處呢?首先從資料庫可以作為主資料庫的熱備份,當主資料庫伺服器出現故障時,可以切換到從資料庫進行替代,防止大面積出現資料問題。其次,可以緩資料i/o壓力,只有主資料庫,磁碟的i/o壓力是隨之而來的,增加從庫不僅可以降低磁碟壓力,而且可以增加單機的效率,一舉兩得。第三就是我們接下來需要講的讀寫分離的好處,使用主從資料庫後,後台資料可以直接拉取從資料庫中的資料。二主資料庫專心前台的業務和寫操作等。
那麼什麼是讀寫分離?
讀寫分離是依賴於主從資料庫結構而言,即寫在主資料庫,讀在從資料庫。主資料庫產生寫操作及其資料後從資料庫中複製主資料庫中資料,當進行讀操作時拉取資料進行在從資料庫上,實現讀寫分離。
最後簡單說一下主從複製的幾種方式:
1.同步複製:主資料庫中的資料變化必須等從資料庫群全部同步完成後才能返回。
2.非同步複製:類似於ajax,主資料庫完成自己操作之後不再關心從資料庫的操作,至於從資料庫是否執行了複製的sql不再關心。
3.半同步方式:主資料庫中的資料變化後從資料庫群其中一台從資料庫完成複製之後就返回。
mysql讀寫分離,主從複製,主從延遲
為了提公升資料庫的效能,一般會採用讀寫分離,即寫請求去主庫,讀請求去從庫。支援開啟多個io執行緒,可以提公升效率。開啟mysql的semi sync 半同步複製功能,即資料落庫,寫入binlog,並至少同步給一台從庫的relay日誌,才算寫成功。從庫開啟多個sql執行緒,可以併發讀取relay日誌,...
redis的主從複製,讀寫分離,主從切換
當資料量變得龐大的時候,讀寫分離還是很有必要的。同時避免乙個redis服務宕機,導致應用宕機的情況,我們啟用sentinel 哨兵 服務,實現主從切換的功能。redis提供了乙個master,多個sl e的服務。準備三個redis服務,依次命名資料夾子master,sl e1,sl e2.這裡為在測...
sqlserver實現讀寫分離,主從複製的具體步驟
讀寫分離概述 讀寫分離從字面意思就可以理解,就是把對資料庫的讀操作和寫操作分離開。讀寫分離在 發展初期可以一定程度上緩解讀寫併發時產生鎖的問題,將讀寫壓力分擔到多台伺服器上,通常用於讀遠大於寫的場景。讀寫分離的基本原理是讓主資料庫處理事務性增 改 刪操作 insert update delete 而...