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

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

淺析MySQL的WriteSet并行復制

瀏覽:26日期: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”這個參數就是最多等多久,超過這個時間長度后就算沒有湊足也提交。 

親身經歷呀! 這兩個參數特別難找到合的值,就算今天合適,過幾天業務上有點變化后,又可能變的不合適了;如果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久久,三上悠亚国产精品一区二区三区
999久久久国产精品| 亚洲日产av中文字幕| 男女性色大片免费观看一区二区 | 国产精品探花在线观看| 中文字幕一区二区三区在线视频| 国产亚洲一区在线| 亚洲欧洲免费| 国产午夜久久av| 成人午夜亚洲| 91精品国产乱码久久久久久久| 久久蜜桃av| 在线综合欧美| 91亚洲无吗| 日韩欧美自拍| 国产一区白浆| 日韩高清成人在线| 成人在线观看免费视频| 99精品在线观看| 久久高清一区| 国产福利亚洲| 久久国产日韩| 日本成人中文字幕| 国产91欧美| 久久国产精品久久久久久电车| 日韩av一区二| 欧美日韩一区二区综合| 日韩精品久久久久久| 日本久久精品| 日韩激情一区二区| 日韩成人精品一区| 爽爽淫人综合网网站| 国产精品久久亚洲不卡| 1024精品久久久久久久久| 国产乱论精品| 免播放器亚洲| 日韩免费福利视频| 欧美一区网站| 亚洲激情另类| 蜜桃av.网站在线观看| 日韩欧美中文字幕电影| 国精品一区二区| 91一区二区三区四区| 欧美日韩中出| 中文字幕日韩亚洲| 99精品在线观看| 精品国产亚洲一区二区三区大结局| 视频一区在线视频| 久久久久久美女精品| 精品国产美女a久久9999| 日韩一区精品| 在线视频精品| 99国产精品99久久久久久粉嫩| 亚洲欧美久久久| 久久先锋影音| 国产成年精品| 亚洲欧美日韩国产| 亚洲一区二区毛片| 色偷偷偷在线视频播放| 国产精品久久久久久妇女| 中文在线一区| 免费毛片在线不卡| 国产理论在线| 精品美女视频 | 91福利精品在线观看| 亚洲2区在线| 亚洲另类av| 日韩精品电影一区亚洲| 亚洲精品麻豆| 88久久精品| 欧美a级一区二区| 久久久国产精品入口麻豆| 欧美黄色网页| 岛国av在线网站| 五月综合激情| 欧美一级一区| 久久精品国产亚洲一区二区三区| 美腿丝袜亚洲一区| 激情视频网站在线播放色| 国产99久久| 日韩在线卡一卡二| 91成人在线网站| 风间由美中文字幕在线看视频国产欧美| 精品久久国产一区| 国产精品88久久久久久| 亚洲精品欧美| 久久精品免视看国产成人| 国产精品嫩草99av在线| 男女男精品视频网| 精品少妇一区| 国产一区导航| 久久精品毛片| 99在线|亚洲一区二区| 国产欧美一区二区三区国产幕精品| 成人国产精品一区二区网站| 欧美综合另类| 欧美激情aⅴ一区二区三区| 欧美日韩国产免费观看 | 久久超级碰碰| 亚洲午夜91| 亚洲久久一区| 欧美黄色网页| 欧美日韩一区自拍| 欧美日韩亚洲在线观看| 国产精品亚洲欧美一级在线 | 精品黄色一级片| 亚洲综合婷婷| 久久精品青草| 97精品一区二区| 国产极品一区| 日韩和欧美一区二区三区| 久久久蜜桃一区二区人| 国产伦精品一区二区三区视频 | 91久久午夜| 高清一区二区三区av| 日韩高清不卡在线| 亚洲a级精品| 欧美日韩免费观看一区=区三区 | 日韩成人亚洲| 久久91视频| 欧美综合精品| 亚洲人亚洲人色久| 噜噜噜躁狠狠躁狠狠精品视频| 欧美sm一区| 欧产日产国产精品视频| 麻豆视频在线观看免费网站黄| 国际精品欧美精品| 国产精品自在| 国产精品国产三级在线观看| 日韩欧美美女在线观看| 亚洲一二av| 国产人成精品一区二区三| 日韩av一区二区在线影视| 日韩免费精品| 国产午夜精品一区在线观看| 日韩在线观看一区二区| 日韩欧美中文在线观看| 国产三级一区| 久久a爱视频| 色婷婷综合网| 欧美福利一区| 日韩中出av| 国产亚洲一区| 亚洲涩涩在线| 美国三级日本三级久久99| 日韩在线黄色| 精品在线网站观看| 视频在线不卡免费观看| 亚洲二区在线| 中文字幕日本一区二区| 91精品国产自产在线丝袜啪| 精品国产乱码久久久久久1区2匹| 亚洲黄色中文字幕| 天堂av在线一区| 国产精品一区二区三区美女 | 日韩不卡免费高清视频| 国产精品毛片一区二区三区| 欧美在线黄色| 在线一区视频观看| 日韩中文字幕无砖| 久久亚洲黄色| 亚洲欧美激情诱惑| 国产粉嫩在线观看| 亚洲精品国产精品粉嫩| 国产精品成久久久久| 亚洲人成毛片在线播放女女| 中文字幕在线视频网站| 午夜电影一区| 99久久久久久中文字幕一区| 91精品国产经典在线观看| 国产在线成人| 成人一区而且| 国产精品毛片久久久| 国产视频久久| 啪啪国产精品| 91综合久久爱com| 亚洲一区二区免费在线观看| 黑森林国产精品av| 国产精品v日韩精品v欧美精品网站| 国产精品色网| 亚洲韩日在线| 日本在线高清| 成人在线观看免费视频| 国产精品第一| 久久精品xxxxx| 日韩精品五月天| 亚洲精品伊人| 在线精品国产亚洲| 亚洲一区国产| 亚洲欧洲午夜| 久久久久久久久久久9不雅视频| 美腿丝袜亚洲一区| 另类欧美日韩国产在线| 久久激情综合网| 97久久超碰| 国产日韩免费| 国产精品xxx在线观看| 国产精品videossex久久发布 | 色婷婷久久久| 99精品在线观看| 99热免费精品|