本文主要給大家介紹MySQL主從延遲問(wèn)題應(yīng)該如何解決,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對(duì)性,對(duì)大家的參考意義還是比較大的,下面跟筆者一起了解下MySQL主從延遲問(wèn)題應(yīng)該如何解決吧。
創(chuàng)新互聯(lián)公司是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),殷都網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:殷都等地區(qū)。殷都做網(wǎng)站價(jià)格咨詢(xún):18982081108面對(duì)拋出這樣的問(wèn)題,我們先來(lái)了解下生產(chǎn)中有哪些主從架構(gòu)?線(xiàn)上生產(chǎn)環(huán)境一般有一主一從,一主多從,多主一叢(級(jí)聯(lián)復(fù)制,MySQL5.7之后才有) ,主主復(fù)制。主從架構(gòu)存在目的就是為了故障切換和讀寫(xiě)分離。它的原理如下圖:
主云服務(wù)器有一個(gè)工作線(xiàn)程 io dump thread
從云服務(wù)器有兩個(gè)工作線(xiàn)程,一個(gè)是io thread,一個(gè)sql thread。
主庫(kù)把外界接收的SQL請(qǐng)求,記錄到自己的binlog日志里面,從庫(kù)的
io thread去請(qǐng)求主庫(kù) 的binlog日志,并將得到的binlog日志寫(xiě)到自己的relay log(中繼日志) 文件中;主庫(kù)通過(guò)io dump thread,給從庫(kù) io thread 傳binlog 日志。
大家可以看到在主庫(kù)上事務(wù)的提交是并發(fā)模式的,而從庫(kù)只有一個(gè)sql thread 工作,這種不公平的待遇,你說(shuō)它能不延遲嘛。
剖析其重要的延遲原因在于:
1. 首先就是主庫(kù)可以并發(fā)寫(xiě)入,從庫(kù)只能通過(guò)單sql thread完成任務(wù)(MySQL5.7之前)
2. MySQL主從之間的同步,本來(lái)就不是時(shí)時(shí)同步的,是異步的同步,也就是說(shuō),主庫(kù)提交事務(wù)之后,從庫(kù)才再來(lái)執(zhí)行一遍。
3. 在主庫(kù)上對(duì)沒(méi)有索引大表的列進(jìn)行delete或者update的操作
4. 從庫(kù)的硬件配置沒(méi)有主庫(kù)的好,經(jīng)常忽略從庫(kù)的重要性
5. 網(wǎng)絡(luò)問(wèn)題
解決方法如下:
1. 使用MySQL5.7版本,在5.7中引入了基于組提交的并行復(fù)制,設(shè)置參數(shù)slave_parallel_workers>0 和slave_parallel_type='LOGICAL_CLOCK'。
MySQL 5.7才可稱(chēng)為真正的并行復(fù)制,這其中最為主要的原因就是slave云服務(wù)器的回放與主機(jī)是一致的。就是說(shuō)主云服務(wù)器上是怎么并行執(zhí)行的,從庫(kù)上就怎樣進(jìn)行并行回放。不再有MySQL5.6版本中庫(kù)的并行復(fù)制限制。
2. 可以采用percona公司的percona-xtradb-cluster簡(jiǎn)稱(chēng)PXC架構(gòu),這種架構(gòu)下可以實(shí)現(xiàn)多節(jié)點(diǎn)寫(xiě)入,達(dá)到時(shí)時(shí)同步。可參考老張的MySQL高可用架構(gòu)三部曲之PXC。
鏈接地址:http://sumongodb.blog.51cto.com/4979448/1956086
3. 業(yè)務(wù)初期規(guī)劃的時(shí)候,就要選擇合適的分庫(kù)、分表策略,避免單表,或者單庫(kù)過(guò)大。帶來(lái)額外的復(fù)制壓力。從而帶來(lái)主從延遲的問(wèn)題。
4. 避免一些無(wú)用的IO消耗,可以上高轉(zhuǎn)速的磁盤(pán),SSD或者PCIE-SSD設(shè)備。
5. 陣列級(jí)別要選擇RAID10,raid cache策略要使用WB堅(jiān)決不要WT。
6. IO調(diào)度要選擇deadline模式。
7. 適當(dāng)調(diào)整buffer pool的大小
8. 避免讓數(shù)據(jù)庫(kù)進(jìn)行各種大量運(yùn)算,要記住數(shù)據(jù)庫(kù)只是用來(lái)存儲(chǔ)數(shù)據(jù)的,讓?xiě)?yīng)用端多分擔(dān)些壓力,或者可以通過(guò)緩存來(lái)完成。
看完以上關(guān)于MySQL主從延遲問(wèn)題應(yīng)該如何解決,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識(shí)信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前名稱(chēng):MySQL主從延遲問(wèn)題應(yīng)該如何解決-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://vcdvsql.cn/article16/jjsgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、域名注冊(cè)、動(dòng)態(tài)網(wǎng)站、定制網(wǎng)站、面包屑導(dǎo)航、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容