精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL大表如何DDL,你學會了嗎?

數據庫 其他數據庫
mysql的ddl 經過了幾個版本的演進,Online DDL這個特性是在MySQL5.6.7開始支持,在此之前mysql執行ddl語句時,會生成新表,然后將原表數據復制到新表,整個過程是會阻塞DML語句的。

大家好,我是藍胖子,mysql對大表(千萬級數據)的ddl語句,在生產上執行時一定要千萬小心,一不小心就有可能造成業務阻塞,數據庫io和cpu飆高的情況。今天我們就來看看如何針對大表執行ddl語句。

通過這篇文章,你能了解到下面的知識點。

傳統ddl 和online ddl的區別

mysql的ddl 經過了幾個版本的演進,Online DDL這個特性是在MySQL5.6.7開始支持,在此之前mysql執行ddl語句時,會生成新表,然后將原表數據復制到新表,整個過程是會阻塞DML語句的。

online ddl 定義其實就是在執行ddl語句時,不會阻塞dml語句,那么我們就稱這樣的ddl為online ddl

ddl 的算法參數選項又分為 copy, Inplace, INSTANT ,其中copy就是之前傳統ddl執行的過程,會阻塞dml語句。Inplace, INSTANT 算法執行期間 都是可以執行DML語句的,所以我們稱使用這兩種算法的ddl語句為online ddl。

!! ???? 但需要注意的是,并不是所有的ddl操作都支持這兩種算法,具體什么ddl操作類型支持什么算法需要去查閱官方文檔。

INSTANT 算法是mysql8.0 以后新加的,它能在秒級別對千萬級別的大表進行加字段操作,至于其他ddl 語句類型是不是也支持INSTANT 算法,需要去看下官網了,由于我們線上還是使用的mysql5.7 ,所以我還是會給予mysql5.7去進行分析。

在mysql5.7中,例如我們執行下面的ddl 加字段的語句,

ALTER TABLE tbl_name ADD COLUMN column_name column_definition

mysql會去判斷當前執行的ddl語句類型能不能用online ddl inplace 方式,如果能用,那么它就會采用。

使用Inplace算法的ddl語句,執行過程分為3個階段,

階段1: Initialization初始化

在初始化階段,服務器將考慮存儲引擎功能、語句中指定的操作以及用戶指定的ALGORITHM和LOCK選項,確定操作期間允許多少并發性。在此階段,使用一個可升級MDL讀鎖來保護當前表定義。

階段2:Execution執行

如果評估階段發現ddl語句不能使用inplace算法,則會將mdl讀鎖升級為排它鎖,阻塞DML語句執行。并且,這個階段,會真正的執行ddl語句。

階段3:Commit Table Definition 提交表定義

在提交表定義階段,MDL讀鎖升級為MDL排他鎖,以排除舊表定義并提交新表定義。一旦授予,獨占MDL鎖的持續時間就會很短。

可以看到如果使用inplcae 算法,只有在任務提交階段(時間很短), ddl才會阻塞dml語句,因為任務提交階段會持有MDL 排他鎖,而DML 語句執行時需要獲取MDL讀鎖,所以在此期間,DML語句會被阻塞。

具體哪些ddl操作類型支持Inplace 算法,可以查看官方文檔鏈接,比如下面的mysql5.7的文檔

https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-operations.html

如下圖所示,可以發現mysql5.7對加字段的ddl 支持inplace 算法,不過執行期間需要rebuild table即建立新表,并且運行并發的dml語句執行。但是改變字段數據類型ddl,則只能按copy算法進行執行。

!! inplace 算法不是不會產生數據的復制,只是復制期間,不會阻塞dml語句的執行。

圖片圖片

mysql ddl 的陷阱

online ddl機制是否一定不會阻塞業務?

接著我們來看下ddl時使用inplcae 算法(online ddl)是不是一定不會阻塞業務,其實答案是顯而易見的,業務也有可能阻塞,因為online ddl 在提交表定義階段是會獲取MDL排他鎖的,如果有其他事務獲取了MDL讀鎖,那么online ddl 語句也會阻塞住,從而導致發生在ddl語句執行時間點后面的那些需要獲取MDL鎖的sql阻塞掉。具體的操作例子可以查看mysql官方給出的一個例子,

https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-performance.html

ddl 過程中從庫的延遲性

ddl的第二個陷阱是要注意從庫的延遲性,比如mysql5.7加新列,雖然默認可以使用inplace算法來讓dml語句不阻塞,但是建立新列還是需要表的rebuild操作,如果是大表,整個過程還是很慢的,如果從庫只開啟了一個線程去執行主從復制,就會導致主從庫間出現極大的延遲。

解決辦法是開啟并行復制,可以用下面的語句在從庫上執行,查看從庫是否開啟了并行復制

SHOW VARIABLES LIKE 'slave_parallel_workers';

online ddl Duplicate entry...錯誤

雖然使用inplace算法的ddl (online ddl) 可以不阻塞業務操作,但是在大表上執行時,由于ddl過程比較長,還是有可能會出現Duplicate entry 錯誤。下面我來介紹下它出現的場景,比如一張幾千萬的表,里面有一個唯一鍵,在add column ddl期間,對表進行插入,并且插入的值剛好就觸發了唯一鍵約束。那么最后ddl再快完成的時候就會出現這個錯誤。

這是由于add column ddl期間,會發生表的rebuild,相當于新建一個臨時表然后對舊表進行拷貝,但是ddl期間還是允許業務修改,插入數據,所以online ddl將執行期間新的修改記錄到一個叫做row_log的對象里,在ddl最后階段,將mdl鎖升級為排它鎖,然后將row_log對象中的數據和新表的數據進行合并,這樣就達到了ddl期間兼容dml操作的目的。

但是應用row log的過程是不允許報錯,如果期間發生了報錯就會導致ddl回滾,因為在ddl期間,記錄了相同唯一鍵的數據,所以在應用row log的時候,產生了報錯。

官方也給出了online ddl 報錯的場景,鏈接如下

https://dev.mysql.com/doc/refman/5.7/en/innodb-online-ddl-failure-conditions.html

其實我認為本質原因是mysql5.7 執行add column 的ddl時間還是太長了,在這么長時間里可能就會發生業務對相同唯一鍵的插入操作,如果能縮短ddl執行時間應該就能很大程度避免這種問題。

mysql8.0  在add column 時可以采用instance 算法,能達到秒級別的加新字段的操作,理論上可以避免這個錯誤。

如果不是mysql8.0 ,又想對千萬級的大表添加字段,又要避免Duplicate entry 錯誤,那么可以使用pt-online-schema-change這個工具。

pt-online-schema-change 工具進行字段添加

下面我就來簡單的介紹下pt-online-schema-change,它對表結構的修改原理是創建一張新表(擁有最新的表定義),然后在舊表上創建delete,update,insert的觸發器,來對增量數據進行更新,對舊表數據采取insert ignore 新表 select 老表 LOCK S 的方式進行分塊拷貝,最后拷貝完成后,在一個事務里對舊表進行刪除,新表進行重命名,這樣就完成了對表結構的變更。

同時在變更期間,你能夠通過下面的參數控制從庫延遲

  • --max-lag

默認1s

檢查從庫延遲的時間,如果超過,則停止copy data,休息--check-interval秒后,再重新開始copy數據

查看通過延遲時間,是通過從庫show slave status,查看Seconds_Behind_Master

如果指定--check-slave-lag,該工具只檢查該服務器的延遲,而不是所有服務器。

  • --check-interval
  • 從庫延遲超過指定的--max-lag,中斷copy data休息的時間
  • 默認為1s

下面是pt-online-schema-change 語句執行的完整示例,它同時會列出拷貝過程完成的百分比。

pt-online-schema-change --alter "add pkg_source tinyint(2) default 0 not null;" h=主機ip,P=端口,p=密碼,u=用戶名,D=數據庫名,t=表名  --recursion-method=none  --execute --statistics

如果你的ddl需要拷貝表,那么用pt-online-schema-change 工具再合適不過了。

責任編輯:武曉燕 來源: 藍胖子的編程夢
相關推薦

2023-03-26 22:31:29

2022-12-06 07:53:33

MySQL索引B+樹

2023-05-05 06:54:07

MySQL數據查詢

2022-12-09 09:21:10

分庫分表算法

2023-11-01 07:28:31

MySQL日志維護

2022-11-30 09:54:57

網絡令牌身份驗證

2024-01-02 12:05:26

Java并發編程

2023-08-01 12:51:18

WebGPT機器學習模型

2024-01-19 08:25:38

死鎖Java通信

2023-01-10 08:43:15

定義DDD架構

2024-02-04 00:00:00

Effect數據組件

2023-07-26 13:11:21

ChatGPT平臺工具

2023-02-15 08:41:56

多層維表性能寬表

2022-11-03 08:16:33

MySQL·窗口函數

2023-05-24 08:14:55

2024-08-21 08:27:30

擴展數據庫服務器

2024-08-09 08:17:07

SSH服務器架構

2023-04-26 00:41:36

A/B測試郵件數量

2024-05-29 09:20:41

2021-11-26 11:30:07

身高重建隊列
點贊
收藏

51CTO技術棧公眾號

四虎精品成人影院观看地址| 在线看的片片片免费| 久草在线视频资源| 91捆绑美女网站| 国产精品久久久91| 久久久久久久久久97| caoporn成人| 91久久久免费一区二区| 少妇熟女一区二区| 性感美女福利视频| 男人的j进女人的j一区| 色综合久久中文字幕综合网小说| 国产精品久久久久久久无码| 色猫猫成人app| 亚洲一区二区四区蜜桃| 日本一区二区三区视频在线播放 | 成人在线亚洲| 精品成人一区二区三区四区| 国产又黄又猛又粗| av小说在线播放| 中文字幕av一区二区三区免费看| 超碰97在线人人| 中文字幕网址在线| 国产一区二区三区的电影| 日韩中文综合网| 一级性生活大片| 中文字幕日韩在线| 欧美精品国产精品| 日韩毛片在线免费看| 怡红院在线播放| 中文字幕亚洲在| 日本不卡一区| 日本福利片在线| 成人黄色a**站在线观看| 国产在线精品播放| 亚洲精品一区二区二区| 亚洲在线播放| 国产69精品久久久久久| 国产一级做a爱免费视频| 伊人色**天天综合婷婷| 三级精品视频久久久久| 国产成人无码精品久久二区三| 超碰精品在线观看| 欧美mv日韩mv国产网站| 国产毛片久久久久久| 在线不卡一区| 欧美电影一区二区| 成人综合久久网| 国产激情综合| 欧美精品777| 亚洲精品性视频| 国产va免费精品观看精品| 欧美日韩精品三区| 又色又爽又黄视频| 精品国产不卡一区二区| 欧美一区二区播放| www.偷拍.com| 国产精品色在线网站| 亚洲大胆人体av| 午夜男人的天堂| 欧美激情久久久久久久久久久| 精品日韩一区二区三区免费视频| 无码人妻丰满熟妇区毛片蜜桃精品| 国产精品美女久久久久| 日韩欧美激情在线| 熟妇高潮一区二区| 亚洲区小说区| 一色桃子一区二区| 国精产品一区一区| 欧美一区二区三区久久精品| 欧美成人性生活| 久久久精品一区二区涩爱| 国产综合欧美| 欧美一级视频一区二区| 成人一级免费视频| 激情深爱一区二区| 97超级碰碰| 亚洲 欧美 激情 另类| 久久久精品一品道一区| 亚洲一区二区三区加勒比| 动漫一区在线| 亚洲成av人片| 日本 片 成人 在线| 韩国一区二区三区视频| 亚洲国产精品久久久| 精品无码人妻一区| 国产精品成人a在线观看| 欧美巨大黑人极品精男| 国产情侣自拍av| 精品一区二区在线视频| 国产伦精品一区二区三区照片 | 99re这里都是精品| 日本在线成人一区二区| 国产激情小视频在线| 黄色91在线观看| 性欧美1819| 国产一区福利| 久久精品国产免费观看| 黄色片免费观看视频| 久久精品国产第一区二区三区| 亚洲一区美女视频在线观看免费| 五月天婷婷激情网| 亚洲视频一区二区免费在线观看| 777精品久无码人妻蜜桃| 欧美视频免费看| 亚洲国产美女久久久久| 亚洲aaa视频| 亚洲福利久久| 成人信息集中地欧美| 亚洲欧美色视频| 亚洲欧美日韩在线| 能看的毛片网站| 国产香蕉精品| 欧美精品做受xxx性少妇| 五月婷婷六月婷婷| 成人精品小蝌蚪| 艳母动漫在线免费观看| 毛片无码国产| 337p日本欧洲亚洲大胆精品| 手机在线中文字幕| 久久亚洲欧洲| 精选一区二区三区四区五区| 国产成人无吗| 在线播放视频一区| 欧美a在线播放| 国产视频一区欧美| 国产精品v欧美精品v日韩| 欧美三级理伦电影| 在线观看亚洲a| 国产精品jizz| 亚洲精选在线| 国产精品毛片一区视频| 1区2区在线观看| 欧美日韩精品专区| 欧美午夜一区二区三区免费大片| 不卡欧美aaaaa| 亚洲激情不卡| 亚洲欧洲第一视频| 亚洲国产综合久久| 国产精品白丝av| 亚洲一区二区高清视频| 天堂а√在线中文在线新版 | 日本精品免费| 九色porny自拍视频在线播放| 日韩精品资源二区在线| 中文字幕在线2021| 国产曰批免费观看久久久| 亚洲午夜精品福利| 青青伊人久久| 久久色精品视频| 国产精品视频无码| 亚洲欧美日韩国产另类专区| 日韩在线不卡一区| 五月激情综合| 91网免费观看| 欧美性猛片xxxxx免费中国 | 国产成人91久久精品| 天天综合在线视频| 疯狂做受xxxx高潮欧美日本| 激情综合丁香五月| 快she精品国产999| 日韩三级电影| 国产成人久久精品一区二区三区| 欧美成年人网站| 国产91绿帽单男绿奴| 五月天一区二区三区| 亚洲成人网在线播放| 可以看av的网站久久看| 亚洲一区二区三区精品视频| 国产精品一站二站| 国产做受高潮69| 日本免费一区二区三区最新| 日韩欧美国产免费播放| 日本人亚洲人jjzzjjz| 国产一区二区在线视频| 欧美午夜小视频| 在线一级成人| 成人免费看吃奶视频网站| 亚洲夜夜综合| 亚洲免费视频一区二区| 一级全黄少妇性色生活片| 一区二区三区在线看| 成年人的黄色片| 日本怡春院一区二区| 日日噜噜夜夜狠狠久久丁香五月 | 欧美裸体网站| 久久久久黄色| 欧美激情中文网| 日韩二区三区| 5566中文字幕一区二区电影| 精品91久久久| 一区在线播放视频| 少妇一级淫片免费放播放| 奇米精品一区二区三区在线观看| 在线观看17c| 亚洲精品小区久久久久久| 成人激情免费在线| 成人黄色动漫| 久久人人爽人人爽人人片亚洲| 日本黄色三级视频| 欧美日韩激情在线| 毛片视频网站在线观看| 中文字幕亚洲综合久久菠萝蜜| 粉嫩av懂色av蜜臀av分享| 麻豆精品视频在线观看视频| 无码 制服 丝袜 国产 另类| 国产精品99一区二区三区| 久久久福利视频| 日韩一区二区三区色| 国产成人综合久久| gogo高清在线播放免费| 久久精品国产清自在天天线| 久久米奇亚洲| 亚洲国产精品久久久久| 国产精品热久久| 91久久久免费一区二区| 日韩xxxxxxxxx| 亚洲人成影院在线观看| 91激情视频在线观看| 9色porny自拍视频一区二区| 亚洲欧美日本一区二区| 首页亚洲欧美制服丝腿| 黄色一级片播放| 韩日成人在线| 女同性恋一区二区| 久久精品国产大片免费观看| 你懂的视频在线一区二区| 成午夜精品一区二区三区软件| 91视频免费网站| 国产欧美自拍| 国产精品揄拍500视频| 丁香六月综合| 18性欧美xxxⅹ性满足| 麻豆av在线播放| 欧美老女人xx| huan性巨大欧美| 久久久国产视频| mm1313亚洲国产精品美女| 最近2019年中文视频免费在线观看 | 国产主播av在线| 国产亚洲一区二区在线观看| 中文字幕丰满孑伦无码专区| av一本久道久久综合久久鬼色| 一级黄色大片免费看| 国产高清视频一区| 91精产国品一二三| 国产福利一区二区三区视频| 一本之道在线视频| 国产成人亚洲综合a∨猫咪| 日韩视频在线观看一区二区三区| 久久国产欧美日韩精品| 天天干天天操天天做| 美女www一区二区| 污污网站在线观看视频| 精品一区二区在线观看| 亚洲一区精品视频在线观看| 韩国毛片一区二区三区| 小日子的在线观看免费第8集| 国产精品亚洲专一区二区三区| 永久看看免费大片| 成人精品在线视频观看| 中文字幕永久免费| 99精品视频中文字幕| 一区二区黄色片| 中文字幕中文在线不卡住| 国产午夜手机精彩视频| 玉米视频成人免费看| 99免费在线观看| 欧美色视频日本高清在线观看| 狠狠狠狠狠狠狠| 欧美久久久久久久久| 99热在线只有精品| 亚洲精品一线二线三线无人区| 天堂v在线观看| 伊人久久久久久久久久久| 顶级网黄在线播放| 777精品视频| 色999韩欧美国产综合俺来也| 亚洲专区在线视频| 亚州精品视频| 樱花www成人免费视频| 伊人久久亚洲热| 91看片就是不一样| 国产一区二区三区日韩| 日本黄色片在线播放| 国产精品成人一区二区三区夜夜夜| 久久精品视频免费在线观看| 精品久久久久久久久久国产| 一区二区视频免费观看| 欧美不卡一二三| 国产一区二区影视| 两个人的视频www国产精品| 黄毛片在线观看| 成人免费网站在线看| 日本成人中文| 青春草在线视频免费观看| 一本色道久久综合亚洲精品不| 国产成人黄色网址| av欧美精品.com| 小泽玛利亚一区二区免费| 狠狠躁夜夜躁人人爽天天天天97| 一级做a爰片久久毛片16| 日韩电影视频免费| 快射视频在线观看| 日韩免费av片在线观看| 91蜜桃臀久久一区二区| 亚洲高清在线观看一区| 激情综合视频| 樱花草www在线| 久久精品欧美一区二区三区麻豆| 欧美精品99久久久| 欧美日韩亚洲综合一区| 性xxxx视频| 久久久久久久久久久亚洲| 欧美视频免费看| 日韩欧美精品久久| 男人的天堂亚洲| 中国xxxx性xxxx产国| 亚洲四区在线观看| 国产精品xxxxxx| 亚洲欧美国产一区二区三区| 91九色美女在线视频| 亚洲自拍另类欧美丝袜| 日韩亚洲一区在线| 黑人糟蹋人妻hd中文字幕| 成人美女视频在线看| 91视频综合网| 欧美日韩电影一区| 成人高清在线| 日本精品久久久久影院| 日韩欧美ww| 欧美 日韩 亚洲 一区| 风间由美一区二区三区在线观看| 免费黄色国产视频| 欧美日韩中字一区| 超碰免费在线观看| 国产97色在线|日韩| 偷拍自拍亚洲色图| 北条麻妃在线视频观看| 99精品黄色片免费大全| 日本少妇激情视频| 亚洲白虎美女被爆操| 国产美女一区视频| 114国产精品久久免费观看| 一区二区三区午夜探花| 999热精品视频| 亚洲精品日产精品乱码不卡| 国产日产亚洲系列最新| 久久影院模特热| 天堂av一区| 久久99久久99精品| 96av麻豆蜜桃一区二区| 亚洲 欧美 日韩 综合| 日韩精品中文字| 综合在线影院| 亚洲女人毛片| 国产一区二区三区在线观看免费视频| 91高清免费观看| 日韩欧美国产电影| heyzo高清中文字幕在线| 久久久久天天天天| 久久精品毛片| 青青草自拍偷拍| 日韩欧美美女一区二区三区| 丁香花电影在线观看完整版| 久久av一区二区三区漫画| 久热国产精品| 波多野结衣在线网址| 欧美电影免费提供在线观看| www.综合| 日本欧洲国产一区二区| 精品一区二区免费视频| 久久久久久久9999| 亚洲女人天堂av| 久久婷婷五月综合色丁香| 久久这里只有精品8| 99免费精品视频| 在线免费av网| 久久久久久中文字幕| 夜夜春成人影院| 日韩精品aaa| 精品久久久久久久大神国产| 色影院视频在线| 国产精品一区在线播放| 天堂成人国产精品一区| 久久嫩草捆绑紧缚| 亚洲精品久久视频| 麻豆久久久久| 超碰成人免费在线| 中国色在线观看另类| 老熟妇高潮一区二区高清视频| 日韩**中文字幕毛片| 中文精品电影| 成人片黄网站色大片免费毛片| 91精品视频网| 黑人巨大亚洲一区二区久 | 老**午夜毛片一区二区三区| 黄色录像免费观看| 亚洲视频精品在线| 国产一区二区三区不卡av|