日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

淺析MySQL的WriteSet并行復制

瀏覽:28日期:2023-10-09 07:58:46

【歷史背景】

歲月更迭中我已經從事MySQL-DBA這個工作三個年頭,見證MySQL從“基本可用”,“邊緣系統可以用MySQL”,“哦操!你怎么不用MySQL”;

正所謂!“一個數據庫的境遇既取決于歷史的進程,取決于它的自我奮斗!”,關于“歷史的進程”在此不表,關于“自我奮斗”這里也只想談一下并行復制的幾個關鍵時間結點

總的來說MySQL關于并行復制到目前為止經歷過三個比較關鍵的時間結點“庫間并發”,“組提交”,“寫集合”;真可謂是江山代有人才出,前浪死在沙灘上;總的來說就后面的比前面的不知道高到哪里去了!

【庫間并發】

庫間并發的理論依據是這樣的 ---- 一個實例內可能會有多個庫(schema),不同的庫之間沒有什么依賴關系,所以在slave那邊為每一個庫(schema)單獨起一個SQL線程,這樣就能通過多線程并行復制的方式來提高主從復制的效率。

這個理論聽起來沒問題,但是事實上一個實例也就一個業務庫,所以這種庫間并發就沒什么作用了;也就是說這個方式的適用場景比較少,針對這個不足直到“組提交”才解決!

【組提交】

組提交的理論依據是這樣的 --- 如果多個事務他們能在同一時間內提交,這個就間接說明了這個幾個事務鎖上是沒有沖突的,也是就說他們各自持有不同的鎖,互不影響;邏輯上我們幾個事務看一個組,在slave以“組”為單位分配給SQL線程執行,這樣多個SQL線程就可以并行跑了;而且不在以庫為并行的粒度,效果上要比“庫間并發”要好一些。

這個事實上也有一些問題,因為它要求庫上要有一定的并發度,不然就有可能變成每個組里面只有一個事務,這樣就有串行沒什么區別了,為了解決這個問題MySQL提供了兩個參數就是希望在提交時先等一等,盡可能的讓組內多一些事務,以提高并行復制的效率。

“binlog_group_commit_sync_no_delay_count” 設置一個下水位,也就是說一個組要湊足多少個事務再提交;為子防止永遠也湊不足

那么多個事務MySQL還以時間為維度給出了另一個參數“binlog_group_commit_sync_delay”這個參數就是最多等多久,超過這個時間長度后就算沒有湊足也提交?!?/p>

親身經歷呀! 這兩個參數特別難找到合的值,就算今天合適,過幾天業務上有點變化后,又可能變的不合適了;如果MySQL能自己達到一個自適應的效果就好了;這個自適用要到WriteSet才完成(WriteSet并不是通過自動調整這兩個參數來完成,它采用了完全不同的解決思路)。

【WriteSet】

WriteSet解決了什么問題?當然是解決了“組提交”的問題啦! 說了和沒說一個樣,好下面我們來舉個例子(比較學院派);假設你第一天更新了id == 1 的那一行,第二天你更新了id == 2 的那一行,第三天有個slave過來同步你的數據啦! 以“組提交”的尿性,這兩個更新會被打包到不同的“組”,也就是說會有兩個組;由于每個組內只有一個事務,所以邏輯上就串行了,起來!

身為DBA的你一可以看出來這兩個事實上是可以打包到同一個組里來的,因為他們互不沖突,就算打包到同一個組也不引起數據的不一致。 于是你有兩個辦法

辦法1): 妹妹你大膽的把“binlog_group_commit_sync_no_delay_count”設置成 2,也就是說一個組至少要包含兩個事務,并且把“binlog_group_commit_sync_delay”設置成24小時以上!如果你真的做了,你就可以回家了,你的數據庫太慢了(第一條update等了一天),才完成!

辦法2): 叫MySQL用一本小本子記下它最近改了什么,如果現在要改的數據和之前的數據不沖突,那么他們就可以把包到同一個組;還是我們剛才的例子,由于第二天改的值的id==2所以它和第一天的不沖突,那么它完全可以把第二天的更新和第一天的更新打包到同一個組。這樣組里面就有兩個事務了,在slave第三天回放時就會有一種并行的效果。

這本小本子這么牛逼可以做大一點嗎?當然!binlog_transaction_dependency_history_size 這個參數就小本子的容量了;那我的MySQL有這本小本子嗎? 如果你的mysql比mysql-5.7.22新的話,小本子就是它生來就有的。

也就是說“WriteSet”是站在“組提交”這個巨人的基礎之間建立起來的,而且是在master上做的自“適應”打包分組,所以你只要在master上新增兩個參數

binlog_transaction_dependency_tracking = WRITESET # COMMIT_ORDER transaction_write_set_extraction = XXHASH64

理論說完了,下面我們看一下實踐。

【WriteSet實踐】

基于WriteSet的并行復制環境怎么搭建我這里就不說了,也就是比正常的“組提交”在master上多加兩個參數,不講了;我這里想直接給出兩種并行復制方式下的行為變化。

1): 我們要執行的目標SQL如下

create database tempdb;use tempdb;create table person(id int not null auto_increment primary key,name int);insert into person(name) values(1);insert into person(name) values(2);insert into person(name) values(3);insert into person(name) values(5);

2): 看一下組提交對上面SQL的分組情況

淺析MySQL的WriteSet并行復制

3): 看write_set的對“組提交”優化后的情況

淺析MySQL的WriteSet并行復制

可以看到各個insert是可以并行執行的,所以它們被分到了同個組(last_committed相同);last_committed,sequence_number,這兩個值在binlog里面記著就有,我在解析binlog的時候習慣使用如下選項

mysqlbinlog -vvv --base64-output=’decode-rows’ mysql-bin.000002

【總結】

WriteSet是在“組提交”方式上建立起來的,一種新的并行復制實現;相比“組提交”來說更加靈活;當然,由于并發度上去了,相比“組提交”WriteSet在性能上會更加好一些,在一些WriteSet沒有辦法是否沖突時,能平滑過度到“組提交”模式。

以上就是淺析MySQL的WriteSet并行復制的詳細內容,更多關于MySQL WriteSet并行復制的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
97欧美在线视频| 国产白浆在线免费观看| 99热精品久久| 久久九九电影| 五月激情久久| 久久婷婷丁香| 国产一区二区精品| 欧美欧美黄在线二区| 日产欧产美韩系列久久99| 日韩高清不卡一区二区| 国产剧情一区二区在线观看| 亚洲a级精品| 97久久超碰| 欧美天堂在线| 在线观看精品| 亚洲自拍另类| 午夜亚洲福利| 精品久久视频| 久久蜜桃精品| 亚洲精品一区二区妖精| 免费国产自线拍一欧美视频| 国产亚洲一区二区三区啪| 国产日韩欧美三级| av免费不卡国产观看| 欧美国产91| 亚洲欧洲美洲国产香蕉| 国产乱码精品一区二区三区四区 | 久久九九99| 日本欧美在线| 高清一区二区三区| av在线最新| 不卡中文一二三区| 欧美伊人影院| 亚洲精品动态| 久久激情一区| 日韩av中文字幕一区| 精品少妇av| 视频一区视频二区中文字幕| 国产在线观看www| 亚洲有吗中文字幕| 欧美激情网址| 99re国产精品| 国内不卡的一区二区三区中文字幕| 欧美在线亚洲综合一区| 欧美成人精品午夜一区二区| 99精品视频在线观看免费播放| 蜜桃视频免费观看一区| 国产一区二区久久久久| 黄色亚洲在线| 欧美www视频在线观看| 六月天综合网| 影视先锋久久| 91精品国产成人观看| 精品高清久久| 久久国产免费看| 成人免费电影网址| 国产伊人久久| 久久中文字幕一区二区| 欧美日韩亚洲一区| 日韩综合小视频| 久久中文亚洲字幕| 蜜桃一区二区三区| 99xxxx成人网| 亚洲深爱激情| 亚洲精品乱码| 日韩精品五月天| 在线看片一区| 石原莉奈在线亚洲三区| 不卡一区2区| 午夜视频一区二区在线观看| 视频一区中文字幕精品| 黄色亚洲免费| 久久国产精品99国产| 福利片在线一区二区| 麻豆精品99| 美女视频黄久久| 久久精品国产99国产精品| 黄色欧美在线| 精品国产欧美日韩| 精品国产美女a久久9999| 97视频热人人精品免费| 四虎8848精品成人免费网站| 一区二区小说| 午夜在线视频观看日韩17c| 国产日产精品一区二区三区四区的观看方式| 婷婷五月色综合香五月| 国产成人精品三级高清久久91| 欧美影院三区| 日韩精品久久久久久| 成人在线视频免费看| 国内精品亚洲| 婷婷综合五月| 日韩美女国产精品| 色黄视频在线观看| 亚洲精品在线观看91| 日韩三区四区| 亚洲永久av| 日本免费在线视频不卡一不卡二| 美女毛片一区二区三区四区最新中文字幕亚洲| 久久久久免费| 亚洲最大av| av资源亚洲| 中文字幕日本一区二区| 日韩成人高清| 国产亚洲精品精品国产亚洲综合| 亚洲一级少妇| 偷拍亚洲精品| 欧美成a人免费观看久久| 国产精品巨作av| 蜜臀久久99精品久久久久久9| 久草免费在线视频| 欧美自拍一区| 亚洲专区视频| 午夜亚洲一区| 97精品一区| 美女视频网站久久| 国产美女久久| 一区二区精彩视频| 日韩精品一区二区三区免费观看| 国产精选一区| 1024精品久久久久久久久| 69堂免费精品视频在线播放| 亚洲日本三级| 国产亚洲一区二区手机在线观看| 久久免费精品| 国产精品中文字幕亚洲欧美| 国精品一区二区三区| 国产精品亚洲产品| 亚州av日韩av| 爽好久久久欧美精品| 亚洲制服少妇| 亚洲一区久久| 99在线精品免费视频九九视| 亚洲精品888| 999国产精品视频| 成人国产综合| 免费福利视频一区二区三区| 电影91久久久| 乱一区二区av| 丝袜美腿诱惑一区二区三区| 午夜久久中文| 国产农村妇女精品一二区| 国产精品老牛| 男人的天堂亚洲一区| 一区二区三区午夜视频| 视频一区在线播放| 少妇精品久久久一区二区| 国产日韩一区| 精精国产xxxx视频在线野外| 欧洲av不卡| 久久亚洲风情| 欧美片网站免费| 日韩成人综合| 爽好久久久欧美精品| 日韩精品一区二区三区中文| 欧美精品91| 成人免费网站www网站高清| 日韩在线高清| 午夜久久av | 日韩中文首页| 日本韩国欧美超级黄在线观看| 97人人精品| 99成人在线| 美女尤物国产一区| 久久高清免费| 天堂精品久久久久| 韩日一区二区| 香蕉精品视频在线观看| 国产探花一区在线观看| 99国产精品久久久久久久| 国产探花一区在线观看| 国产一区二区三区不卡视频网站| 1024精品久久久久久久久| 色综合视频一区二区三区日韩 | 五月天综合网站| 综合激情网站| 欧美国产偷国产精品三区| 久久精品99国产精品| 在线日韩欧美| 国产一区二区三区久久久久久久久| 综合激情网...| 欧美国产一级| 国产午夜久久av| 亚洲免费毛片| 亚洲自拍另类| 亚洲一区二区三区免费在线观看 | 亚洲一区不卡| 91精品一区二区三区综合| 国产精品18| 日本午夜精品| 久久高清一区| 国产韩日影视精品| 久久99性xxx老妇胖精品| 亚洲精一区二区三区| 久久亚洲影院| 丝袜美腿一区| 国产精品久久久久久久免费观看 | 免费观看在线综合| 欧美激情另类| 精品免费在线|