MySQL查詢從主上讀是指,將數(shù)據(jù)庫的所有寫操作(如插入、修改、刪除等)都發(fā)往數(shù)據(jù)庫的主節(jié)點(diǎn),而將讀操作(如查詢數(shù)據(jù))發(fā)送到數(shù)據(jù)庫的從節(jié)點(diǎn)上。這樣的好處是可以提高數(shù)據(jù)庫的讀取效率,同時(shí)減少單一節(jié)點(diǎn)的負(fù)載壓力,提高數(shù)據(jù)庫的穩(wěn)定性。該方案需要使用MySQL集群,即將多個(gè)MySQL服務(wù)器連接在一起,構(gòu)成一個(gè)分布式的數(shù)據(jù)庫系統(tǒng),以實(shí)現(xiàn)高可用、高性能、高擴(kuò)展等特性。常用的MySQL集群方案包括主從復(fù)制、MGR、Galera Cluster等。
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)蟠龍,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
用 pt-table-checksum 時(shí),會不會影響業(yè)務(wù)性能?
實(shí)驗(yàn)
實(shí)驗(yàn)開始前,給大家分享一個(gè)小經(jīng)驗(yàn):任何性能評估,不要相信別人的評測結(jié)果,要在自己的環(huán)境上測試,并(大概)知曉原理。
我們先建一對主從:
然后用 mysqlslap跑一個(gè)持續(xù)的壓力:
開另外一個(gè)會話,將 master 上的 general log 打開:
然后通過 pt-table-checksum 進(jìn)行一次比較:
查看 master 的 general log,由于 mysqlslap 的影響,general log 中有很多內(nèi)容,我們找到與 pt-table-checksum 相關(guān)的線程:
將該線程的操作單獨(dú)列出來:
操作比較多,我們一點(diǎn)一點(diǎn)來說明:
這里工具調(diào)小了 innodb 鎖等待時(shí)間。使得之后的操作,只要在 innodb 上稍微有鎖等待,就會馬上放棄操作,對業(yè)務(wù)影響很小。
另外工具調(diào)小了 wait_timeout 時(shí)間,倒是沒有特別的作用。
工具將隔離級別調(diào)整為了 RR 級別,事務(wù)的維護(hù)代價(jià)會比 RC 要高,不過后面我們會看到工具使用的每個(gè)事務(wù)都很小,加上之前提到 innodb 鎖等待時(shí)間調(diào)到很小,對線上業(yè)務(wù)產(chǎn)生的成本比較小。
RR 級別是數(shù)據(jù)對比的基本要求。
工具通過一系列操作,了解表的概況。工具是一個(gè)數(shù)據(jù)塊一個(gè)數(shù)據(jù)塊進(jìn)行校驗(yàn),這里獲取了第一個(gè)數(shù)據(jù)塊的下邊界。
接下來工具獲取了下一個(gè)數(shù)據(jù)塊的下邊界,每個(gè) SQL前都會 EXPLAIN 一下,看一下執(zhí)行成本,非常小心翼翼。
之后工具獲取了一個(gè)數(shù)據(jù)塊的 checksum,這個(gè)數(shù)據(jù)塊不大,如果跟業(yè)務(wù)流量有沖突,會馬上出發(fā) innodb 的鎖超時(shí),立刻退讓。
以上是 pt-table-checksum 的一些設(shè)計(jì),可以看到這幾處都是精心維護(hù)了業(yè)務(wù)流量不受影響。
工具還設(shè)計(jì)了其他的一些機(jī)制保障業(yè)務(wù)流量,比如參數(shù) --max-load 和 --pause-file 等,還有精心設(shè)計(jì)的數(shù)據(jù)塊劃分方法,索引選擇方法等。大家根據(jù)自己的情況配合使用即可達(dá)到很好的效果。
總結(jié)
本期我們介紹了簡單分析 pt-table-checksum 是否會影響業(yè)務(wù)流量,坊間會流傳工具的各種參數(shù)建議或者不建議使用,算命的情況比較多,大家都可以用簡單的實(shí)驗(yàn)來分析其中機(jī)制。
還是那個(gè)觀點(diǎn),性能測試不能相信道聽途說,得通過實(shí)驗(yàn)去分析。
其實(shí)就是主要看 Slave_IO_Running 和 Slave_SQL_Running 兩個(gè)線程的狀態(tài)。
網(wǎng)站標(biāo)題:mysql怎么查看主從 mysql mgr如何判斷主從
本文網(wǎng)址:http://www.rwnh.cn/article34/dopjgse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、云服務(wù)器、網(wǎng)站排名、動態(tài)網(wǎng)站、營銷型網(wǎng)站建設(shè)、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)