MySQL數(shù)據(jù)庫主從復(fù)制與讀寫分離
一.主從復(fù)制
???????主從復(fù)制:在實際的生產(chǎn)中,為了解決Mysql的單點故障以及提高MySQL的整體服務(wù)性能,一般都會采用主從復(fù)制。即:對數(shù)據(jù)庫中的數(shù)據(jù)、語句做備份。
主從復(fù)制三線程
???????Mysql的主從復(fù)制中主要有三個線程:master(binlog dump thread)、slave(I/O thread 、SQL thread),Master一條線程和Slave中的兩條線程。
主從復(fù)制過程
主從復(fù)制的過程:
master主要負責(zé)Master庫中有數(shù)據(jù)更新的時候,會按照binlog格式,將更新的事件類型寫入到主庫的binlog文件中。Master會創(chuàng)建log dump線程通知Slave主庫中存在數(shù)據(jù)更新。
I/O thread線程在Slave中創(chuàng)建,該線程用于請求Master,Master會返回binlog的名稱以及當前數(shù)據(jù)更新的位置、binlog文件位置的副本。然后,將binlog保存在 relay log(中繼日志) 中,中繼日志也是記錄數(shù)據(jù)更新的信息。
SQL線程也是在Slave中創(chuàng)建的,當Slave檢測到中繼日志有更新,會將更新的內(nèi)容同步到Slave數(shù)據(jù)庫中,保證了主從的數(shù)據(jù)的同步。
主從復(fù)制策略
主從復(fù)制的策略:
同步策略:Master會等待所有的Slave都回應(yīng)后才會提交,這個主從的同步 的性能會嚴重的影響。
半同步策略:Master至少會等待一個Slave回應(yīng)后提交。
異步策略:Master不用等待Slave回應(yīng)就可以提交。
延遲策略:Slave要落后于Master指定的時間。
對于不同的業(yè)務(wù)需求,有不同的策略方案,但是一般都會采用最終一致性,不會要求強一致性,強一致性會嚴重影響性能。
主從復(fù)制高延遲
???????主從復(fù)制高延遲的原因
master 服務(wù)器高并發(fā),形成大量事務(wù)
網(wǎng)絡(luò)延遲
主從硬件設(shè)備導(dǎo)致(cpu 主頻、內(nèi)存 io、硬盤 io)
本來就不是同步復(fù)制、而是異步復(fù)制
???????主從復(fù)制高延遲的解決辦法
從庫優(yōu)化 Mysql 參數(shù)。比如增大 innodb_buffer_pool_size,讓更多操作在 - mysql 內(nèi)存中完成,減少磁盤操作
從庫使用高性能主機(高性能 cpu、大內(nèi)存),避免使用虛擬云主機,使用物理主機,提升 I/O 吞吐量
從庫使用 SSD 磁盤
網(wǎng)絡(luò)優(yōu)化,避免跨機房實現(xiàn)同步
二.讀寫分離
讀寫分離概念
???????讀寫分離:讀寫分離是讓主數(shù)據(jù)庫處理事務(wù)性增、刪、改操作(INSERT、UPDATE、DELETE),而從數(shù)據(jù)庫處理查(SELECT) 操作。數(shù)據(jù)庫復(fù)制被用來把事務(wù)性操作導(dǎo)致的變更同步到集群中的從數(shù)據(jù)庫中。
讀寫分離原因與場景
???????讀寫分離原因:讀寫量很大,為了提升數(shù)據(jù)庫讀寫性能,將讀寫進行分離;多機房下如果寫少讀多,同時基于數(shù)據(jù)一致性考慮,只有一個主庫存入所有的數(shù)據(jù)寫入,本地再做從庫提供讀取,減少多機房間直接讀取帶來的時延。
???????讀寫分離使用場景:程序使用數(shù)據(jù)庫較多時,而更新少,查詢多的情況下會考慮使用。利用數(shù)據(jù)庫主從同步,再通過讀寫分離可以分擔(dān)數(shù)據(jù)庫壓力,提高性能。
總結(jié)
到此這篇關(guān)于MySQL數(shù)據(jù)庫主從復(fù)制與讀寫分離的文章就介紹到這了,更多相關(guān)MySQL主從復(fù)制與讀寫分離內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。