亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL8.0新特性之支持原子DDL語句

2024-07-25 19:08:41
字體:
供稿:網(wǎng)友

MySQL 8.0開始支持原子數(shù)據(jù)定義語言(DDL)語句。此功能稱為原子DDL。原子DDL語句將與DDL操作關(guān)聯(lián)的數(shù)據(jù)字典更新,存儲引擎操作和二進制日志寫入組合到單個原子事務(wù)中。即使服務(wù)器在操作期間暫停,也會提交事務(wù),并將適用的更改保留到數(shù)據(jù)字典,存儲引擎和二進制日志,或者回滾事務(wù)。

   通過在MySQL 8.0中引入MySQL數(shù)據(jù)字典,可以實現(xiàn)Atomic DDL。在早期的MySQL版本中,元數(shù)據(jù)存儲在元數(shù)據(jù)文件,非事務(wù)性表和存儲引擎特定的字典中,這需要中間提交。MySQL數(shù)據(jù)字典提供的集中式事務(wù)元數(shù)據(jù)存儲消除了這一障礙,使得將DDL語句操作重組為原子事務(wù)成為可能。

官方文檔:

https://dev.mysql.com/doc/refman/8.0/en/atomic-ddl.html

1、支持的DDL語句

 原子DDL功能支持表和非表DDL語句。與表相關(guān)的DDL操作需要存儲引擎支持,而非表DDL操作則不需要。目前,只有InnoDB存儲引擎支持原子DDL。

①:受支持的表DDL語句包括 CREATE,ALTER和 DROP對數(shù)據(jù)庫,表,表和索引,以及語句 TRUNCATE TABLE聲明。
②:支持的非表DDL語句包括:
   CREATE和DROP 語句,以及(如果適用)ALTER 存儲程序,觸發(fā)器,視圖和用戶定義函數(shù)(UDF)的語句。
   賬戶管理語句: CREATE,ALTER, DROP,,如果適用, RENAME報表用戶和角色,以及GRANT 和REVOKE報表。

1.1、原子DDL功能不支持以下語句:

①:涉及除存儲引擎之外的存儲引擎的與表相關(guān)的DDL語句InnoDB。
②:INSTALL PLUGIN和 UNINSTALL PLUGIN 陳述。
③:INSTALL COMPONENT和 UNINSTALL COMPONENT 陳述。
④:CREATE SERVER, ALTER SERVER和 DROP SERVER語句。

2、原子DDL特性:

①:元數(shù)據(jù)更新,二進制日志寫入和存儲引擎操作(如果適用)將合并為單個事務(wù)。
②:在DDL操作期間,SQL層沒有中間提交。
③:在適用的情況下:
    數(shù)據(jù)字典,程序,事件和UDF高速緩存的狀態(tài)與DDL操作的狀態(tài)一致,這意味著更新高速緩存以反映DDL操作是成功完成還是回滾。
    DDL操作中涉及的存儲引擎方法不執(zhí)行中間提交,并且存儲引擎將自身注冊為DDL事務(wù)的一部分。
    存儲引擎支持DDL操作的重做和回滾,這在DDL操作的 Post-DDL階段執(zhí)行。
④:DDL操作的可見行為是原子的,這會更改某些DDL語句的行為

注意:

  原子或其他DDL語句隱式結(jié)束當前會話中處于活動狀態(tài)的任何事務(wù),就好像您COMMIT在執(zhí)行語句之前完成了一樣。這意味著DDL語句不能在另一個事務(wù)中,在事務(wù)控制語句中執(zhí)行 START TRANSACTION ... COMMIT,或者與同一事務(wù)中的其他語句結(jié)合使用。

3、DDL語句行為的變化

3.1、DROP TABLE:

 如果所有命名表都使用原子DDL支持的存儲引擎,則操作是完全原子的。該語句要么成功刪除所有表,要么回滾。

DROP TABLE如果命名表不存在,并且未進行任何更改(無論存儲引擎如何),則會失敗并顯示錯誤。如下所示:

mysql> CREATE TABLE t1 (c1 INT);mysql> DROP TABLE t1, t2;ERROR 1051 (42S02): Unknown table 'test.t2'mysql> SHOW TABLES;+----------------+| Tables_in_test |+----------------+| t1    |+----------------+

在引入原子DDL之前, DROP TABLE雖然會報錯誤表不存在,但是存在的表會被執(zhí)行成功,如下:

mysql> CREATE TABLE t1 (c1 INT);mysql> DROP TABLE t1, t2;ERROR 1051 (42S02): Unknown table 'test.t2'mysql> SHOW TABLES;Empty set (0.00 sec)

注意:

   由于行為的這種變化,DROP TABLE會在 MySQL 5.7主服務(wù)器上的部分完成 語句在MySQL 8.0從服務(wù)器上復(fù)制時失敗。要避免此故障情形,請在DROP TABLE語句中使用IF EXISTS語法以防止對不存在的表發(fā)生錯誤

3.2、DROP DATABASE:

   如果所有表都使用原子DDL支持的存儲引擎,則為atomic。該語句要么成功刪除所有對象,要么回滾。但是,從文件系統(tǒng)中刪除數(shù)據(jù)庫目錄是最后一次,并且不是原子事務(wù)的一部分。如果由于文件系統(tǒng)錯誤或服務(wù)器暫停而導(dǎo)致數(shù)據(jù)庫目錄的刪除失敗, DROP DATABASE則不會回滾事務(wù)。

3.3、對于不使用原子DDL支持的存儲引擎的表,表刪除發(fā)生在原子 DROP TABLE或 DROP DATABASE事務(wù)之外。這樣的表刪除被單獨寫入二進制日志,這在中斷DROP TABLE或 DROP DATABASE操作的情況下將存儲引擎,數(shù)據(jù)字典和二進制日志之間的差異限制為最多一個表 。對于刪除多個表的操作,不使用原子DDL支持的存儲引擎的表將在執(zhí)行之前刪除。

3.4、CREATE TABLE, ALTER TABLE, RENAME TABLE, TRUNCATE TABLE, CREATE TABLESPACE,和 DROP TABLESPACE對使用原子DDL支持的存儲引擎表執(zhí)行的操作要么完全提交或如果服務(wù)器的操作時停止回滾。在早期的MySQL版本中,這些操作的中斷可能會導(dǎo)致存儲引擎,數(shù)據(jù)字典和二進制日志之間的差異,或留下孤立文件。RENAME TABLE如果所有命名表都使用原子DDL支持的存儲引擎,則操作只是原子操作。

3.5、DROP VIEW:

 如果命名視圖不存在且未進行任何更改,則會失敗。在此示例中演示了行為更改,其中 DROP VIEW語句失敗,因為命名視圖不存在,如下:

mysql> CREATE VIEW test.viewA AS SELECT * FROM t;mysql> DROP VIEW test.viewA, test.viewB;ERROR 1051 (42S02): Unknown table 'test.viewB'mysql> SHOW FULL TABLES IN test WHERE TABLE_TYPE LIKE 'VIEW';+----------------+------------+| Tables_in_test | Table_type |+----------------+------------+| viewA   | VIEW  |+----------------+------------+

在引入原子DDL之前, 使用DROP VIEW刪除視圖會報錯,但是存在的視圖會被成功刪除:

mysql> CREATE VIEW test.viewA AS SELECT * FROM t;mysql> DROP VIEW test.viewA, test.viewB;ERROR 1051 (42S02): Unknown table 'test.viewB'mysql> SHOW FULL TABLES IN test WHERE TABLE_TYPE LIKE 'VIEW';Empty set (0.00 sec)

注意:

   由于行為的這種變化,DROP VIEW在MySQL 5.7主服務(wù)器上的部分完成 操作在MySQL 8.0從服務(wù)器上復(fù)制時會失敗。要避免此故障情形,請在DROP VIEW語句中使用IF EXISTS語法以防止對不存在的視圖發(fā)生錯誤。

3.6、不再允許部分執(zhí)行帳戶管理聲明。帳戶管理語句對所有命名用戶成功或回滾,如果發(fā)生錯誤則無效。在早期的MySQL版本中,為多個用戶命名的帳戶管理語句可能對某些用戶成功,而對其他用戶則失敗。

如下:其中第二個CREATE USER 語句返回錯誤但失敗,因為它無法對所有命名用戶成功。

mysql> CREATE USER userA;mysql> CREATE USER userA, userB;ERROR 1396 (HY000): Operation CREATE USER failed for 'userA'@'%'mysql> SELECT User FROM mysql.user WHERE User LIKE 'user%';+-------+| User |+-------+| userA |+-------+

在引入原子DDL之前,第二個 使用CREATE USER語句創(chuàng)建用戶會返回一個錯誤,但是不存在的用戶會成功創(chuàng)建,:

mysql> CREATE USER userA;mysql> CREATE USER userA, userB;ERROR 1396 (HY000): Operation CREATE USER failed for 'userA'@'%'mysql> SELECT User FROM mysql.user WHERE User LIKE 'user%';+-------+| User |+-------+| userA || userB |+-------+

注意:

   由于行為的這種變化,MySQL 5.7主服務(wù)器上部分會成功執(zhí)行,會在MySQL 8.0從服務(wù)器上復(fù)制時失敗。要避免此故障情形,請在創(chuàng)建用戶的命令中使用IF EXISTS或 IF NOT EXISTS語法,以防止與命名用戶相關(guān)的錯誤。

4、存儲引擎支持:目前只有innodb存儲引擎支持原子DDL

   目前,只有InnoDB存儲引擎支持原子DDL。不支持原子DDL的存儲引擎免于DDL原子性。涉及豁免存儲引擎的DDL操作仍然能夠引入操作中斷或僅部分完成時可能發(fā)生的不一致。
   要支持重做和回滾DDL操作, InnoDB請將DDL日志寫入 mysql.innodb_ddl_log表,該表是駐留在mysql.ibd數(shù)據(jù)字典表空間中的隱藏數(shù)據(jù)字典表 。
要mysql.innodb_ddl_log在DDL操作期間查看寫入表的DDL日志 ,請啟用 innodb_print_ddl_logs 配置選項。

注意:

mysql.innodb_ddl_log無論innodb_flush_log_at_trx_commit 設(shè)置多少,對表的 更改的重做日志 都會立即刷新到磁盤 。立即刷新重做日志可以避免DDL操作修改數(shù)據(jù)文件的情況,但是mysql.innodb_ddl_log由這些操作產(chǎn)生的對表的更改的重做日志 不會持久保存到磁盤。這種情況可能會在回滾或恢復(fù)期間導(dǎo)致錯誤。

InnoDB存儲引擎分階段執(zhí)行DDL操作。DDL操作 ALTER TABLE可以在Commit階段之前多次執(zhí)行 Prepare和Perform階段:

準備:創(chuàng)建所需對象并將DDL日志寫入 mysql.innodb_ddl_log表中。DDL日志定義了如何前滾和回滾DDL操作。
執(zhí)行:執(zhí)行DDL操作。例如,為CREATE TABLE操作執(zhí)行創(chuàng)建例程。
提交:更新數(shù)據(jù)字典并提交數(shù)據(jù)字典事務(wù)。
Post-DDL:重播并從mysql.innodb_ddl_log表中刪除DDL日志。為了確??梢园踩貓?zhí)行回滾而不引入不一致性,在最后階段執(zhí)行文件操作,例如重命名或刪除數(shù)據(jù)文件。這一階段還從刪除的動態(tài)元數(shù)據(jù) mysql.innodb_dynamic_metadata的數(shù)據(jù)字典表DROP TABLE,TRUNCATE TABLE和該重建表其他DDL操作。

注意:

  無論事務(wù)是提交還是回滾, DDL日志都會在Post-DDL階段重播并從表中刪除 。mysql.innodb_ddl_log如果服務(wù)器在DDL操作期間暫停,則DDL日志應(yīng)僅保留在表中。在這種情況下,DDL日志將在恢復(fù)后重播并刪除。

  在恢復(fù)情況下,可以在重新啟動服務(wù)器時提交或回滾DDL事務(wù)。如果在重做日志和二進制日志中存在在DDL操作的提交階段期間執(zhí)行的數(shù)據(jù)字典事務(wù),則 該操作被視為成功并且前滾。否則,在InnoDB重放數(shù)據(jù)字典重做日志時回滾不完整的數(shù)據(jù)字典事務(wù) ,并回滾DDL事務(wù)。

5、查看DDL日志:

   InnoDB將DDL日志寫入 mysql.innodb_ddl_log表以支持重做和回滾DDL操作。該 mysql.innodb_ddl_log表是隱藏在mysql.ibd數(shù)據(jù)字典表空間中的隱藏數(shù)據(jù)字典表 。與其他隱藏數(shù)據(jù)字典表一樣,mysql.innodb_ddl_log在非調(diào)試版本的MySQL中無法直接訪問該 表。


注:相關(guān)教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
91蝌蚪porny成人天涯| 欧美特黄一区二区三区| 亚洲欧美在线精品| 北条麻妃在线视频| 国产精品视频一二三四区| 成人免费视频观看视频| 亚洲国产高清国产精品| 日韩三区视频| 少妇性l交大片7724com| 日本精品一二三区| av网址在线看| 国产精品美女在线播放| 国产女人av| 亚洲国内在线| 亚洲天堂成人在线视频| 亚洲人成网站在线播放2019| 青青国产在线视频| 成人短剧在线观看| 少妇激情一区二区三区视频| 免费黄色av网站| 奇米成人av国产一区二区三区| 国产精品试看| 国精品**一区二区三区在线蜜桃| 色欧美片视频在线观看| 精品视频亚洲| 尤物精品在线| 麻豆传媒在线观看| 欧美高清hd| 亚洲精品久久久久久久久久| av大片免费在线观看| 77777少妇光屁股久久一区| 国产毛片久久| 欧美性xxxx禁忌| 91精品国产黑色紧身裤美女| 精品卡1卡2卡三卡免费网站| 91久久久一线二线三线品牌| 91视频一区二区| 国产在线精品一区二区中文| 一本之道在线视频| 日本激情视频在线| 国产精品综合久久久久| 人人艹在线视频| 国产成人a亚洲精v品无码| 成人精品鲁一区一区二区| 女人帮男人橹视频播放| 亚洲视频在线免费看| 欧美xxxx18国产| 日韩精品一区二区三区在线视频| 国产精品久久久久免费| 日日躁天天躁狠狠躁| 神马午夜在线视频| 在线观看免费观看在线91| 又紧又大又爽精品一区二区| 在线成人高清不卡| 久香视频在线观看| 亚洲成人在线视频网站| 日韩精品诱惑一区?区三区| 国产拍揄自揄精品视频麻豆| 久久精品国产精品亚洲色婷婷| 青春草在线观看| 亚洲第一在线综合在线| 欧美高清视频免费观看| 国产精品亚洲欧美一级在线| 大杳蕉精品视频在线观看| 麻豆国产va免费精品高清在线| 亚洲激情综合| 欧洲精品久久久久毛片完整版| 欧美激情国产高清| 日韩欧美亚洲v片| av在线不卡免费观看| 国产精品久久久久999| ...中文天堂在线一区| 91丨porny丨九色| 天天操天天综合网| 亚洲中文字幕一区| 欧美福利一区二区| 99久久99久久精品国产| 亚洲精品欧美精品| 国产亚洲精品久久久优势| 久久久久久一区二区三区四区别墅| 亚洲性猛交xxxx乱大交| 亚洲国产精品久久久男人的天堂| 免费av网站大全久久| 国产激情久久久久久熟女老人av| 中文字幕在线看高清电影| 精品国产一区二区三区久久久樱花| 国产精品国产自产拍高清av水多| 国产毛片在线视频| 日本韩国福利视频| 国产三级精品在线观看| 国产精品嫩草影院俄罗斯| 亚洲电影免费观看高清| 美女做暖暖视频免费在线观看全部网址91| 精品一区二区三区免费观看| 亚洲国产一区二区三区网站| 成人另类视频| 久久综合毛片| 成人亚洲一区二区三区| 福利视频免费在线观看| 户外露出一区二区三区| 国产一精品一aⅴ一免费| 成人精品三级| 欧美日韩免费观看一区二区三区| 亚洲精品自拍| 电影一区二区三区久久免费观看| 国产精品久久久久久久久久久久久久久久久| 精品国产区一区二区三区在线观看| 农村少妇久久久久久久| 香蕉伊大人中文在线观看| 日韩欧美亚洲一区二区三区| 精品久久久久久久久中文字幕| 国模大尺度私拍在线视频| 色综合天天在线| 国产精品精品国产一区二区| 蜜臀av一区二区在线免费观看| 日本一级理论片在线大全| 成人在线视频播放| 欧美日韩一区二区在线播放| 在线视频二区| 一区二区高清免费观看影视大全| 蜜臀av在线| 欧美gay1069大粗吊| 久久久精品人妻一区二区三区| 国产特级淫片免费看| 亚洲人成在线播放网站岛国| 亚洲精品97久久中文字幕无码| 欧美亚视频在线中文字幕免费| 99视频都是精品热在线播放| 色的视频在线观看免费播放| 亚洲乱码国产乱码精品天美传媒| 亚洲高清免费在线观看| 中文字幕成人乱码在线电影| 五月综合激情婷婷六月色窝| 欧美韩日一区| 午夜dj在线观看高清视频完整版| 午夜欧美大片免费观看| 可以免费看不卡的av网站| 色婷婷av一区二区| 中文字幕av久久爽| 在线免费av网站| www.xxxx国产| 日本韩国欧美在线| 77thz桃花论族在线观看| 实拍女处破www免费看| 4438x成人网最大色成网站| 国产亚洲综合视频| 精品婷婷伊人一区三区三| 久久久久久久久久久妇女| 日韩av影院在线观看| 日本高清视频一区二区| 成人免费观看网址| 中国女人内谢69xxxx免费视频| 亚洲最新在线观看| 欧美日韩mp4| 亚洲国产99精品国自产| 亚洲欧美成人综合| 日韩免费电影在线观看| 你懂的视频在线免费| 不卡一区在线观看| av网站在线观看免费| jizzjizz少妇亚洲水多| 亚洲精品无码一区二区| a优女a优女片| 精品久久久中文字幕人妻| 精品国内自产拍在线视频| 精品亚洲一区二区三区四区| 最新中文字幕在线播放| 国产精品第3页| 国产又粗又大又长| 亚洲av成人无码久久精品| 好男人香蕉影院| 国产不卡精品在线| 婷婷中文字幕一区| 激情成人中文字幕| 黄色网在线免费观看| 国产麻豆剧果冻传媒观看hd高清| 日韩美女免费观看| 国产精品综合av一区二区国产馆| 日韩va亚洲va欧美va久久| 国产精品永久在线| 久久精品视频免费在线观看| 91免费视频网址| 在线看欧美视频| 欧美亚洲大片| 色av男人的天堂免费在线| 久久久www成人免费无遮挡大片| 青青热久免费精品视频在线18| 在线观看的av| 污污网站免费看| 国产日韩免费视频| 女海盗2成人h版中文字幕| 国产精品va在线播放| 七七婷婷婷婷精品国产| 中文字幕在线观看91| 欧美一区二区麻豆红桃视频| 亚欧美中日韩视频| chinese叫床对白videos| 欧美momandson| 69xxxx欧美| 性孕妇free特大另类| 九九九伊在线综合永久| 欧美成ee人免费视频| 日韩av在线天堂| 伊人精品成人久久综合软件| 一本一道久久a久久| 无码国产精品久久一区免费| 欧美日韩精品一区二区三区在线观看| 精品久久久久久电影| 无套白嫩进入乌克兰美女| 欧美日韩亚洲一区二区三区在线观看| 精品成人av| 色操视频在线| 亚洲人与黑人屁股眼交| 黄色一区二区三区四区| 亚洲国产一区二区在线观看| 男人天堂av网站| 国产精品极品国产中出| 欧美理论电影在线| av在线网站免费观看| 亚洲精品成人久久| 国产夜色精品一区二区av| av午夜在线观看| 极品av少妇一区二区| 丝袜亚洲另类丝袜在线| wwwxx在线观看| 天海翼一区二区三区免费| 亚洲欧美在线免费观看| 91网站在线观看视频| 日韩av不卡在线| 女厕盗摄一区二区三区| 精品国产区一区| 野外做受又硬又粗又大视频√| 欧美中文一区二区| 美女视频一区免费观看| 自拍在线播放| 国产男女爽爽爽| 国产精品.xx视频.xxtv| 日韩毛片免费观看| 9999精品成人免费毛片在线看| 国产特级淫片免费看| 日本欧美中文字幕| 欧美亚洲尤物久久| av成人动漫| 亚洲人妻一区二区| 国产小视频国产精品| 韩国中文字幕2020精品| 亚洲影影院av| 九九九热视频| 国产在线看片| 青青草国产在线播放| 久久精品国产清自在天天线| 国产区精品在线观看| 精品国一区二区三区| 男人午夜视频在线观看| 欧美国产一区二区| 久久资源中文字幕| a黄色在线观看| 日韩毛片一区| 日韩黄色小视频| 久久久久久爱| 一二三区在线观看| 热久久中文字幕| 91av久久久| 欲求不满的岳中文字幕| 亚洲一区二区av| 欧美欧美黄在线二区| 在线观看 亚洲| 亚洲人成色77777| 欧美韩国日本精品一区二区三区| 国产情侣激情自拍| 色噜噜亚洲精品中文字幕| 懂色av中文字幕| 日韩有码片在线观看| 成人看片黄a免费看视频| av免费播放网站| 一色屋色费精品视频在线看| 中文字幕日韩第一页| 91在线观看视频| 妞干网这里只有精品| 国产av国片精品| 伊人影院蕉久影院在线播放| 欧美亚洲另类色图| 丝袜美女写真福利视频| 99久久精品费精品国产一区二区| 国产成a人无v码亚洲福利| 在线观看免费视频综合| 亚洲 自拍 另类 欧美 丝袜| 国产爆乳无码一区二区麻豆| 日本黄色免费录像| 日韩欧美在线一区二区| www.youjizz.com亚洲| 尤物视频在线观看免费| 国产精品狼人色视频一区| 在线国产日韩| 精品国产91久久久久久浪潮蜜月| 日韩a在线看| 一色屋成人免费精品网| 久久久久久久黄色片| 日韩欧美在线免费观看视频| 亚州欧美在线| 999大胆视频| 欧美精品日韩| 国产又粗又猛又爽| 日韩理论电影院| 国产超碰人人模人人爽人人添| 久久久久久亚洲中文字幕无码| 中文字幕一区av| 美女爆乳18禁www久久久久久| 你懂的网站在线播放| 亚洲av中文无码乱人伦在线视色| 亚洲黄色有码视频| 国产人妻人伦精品| 久久人人爽人人爽人人片av高清| 91精品在线看| 久久久久久久久久久久久久国产| 国产成人av免费在线观看| 国模无码一区二区三区| www.欧美激情.com| 国产精品中文久久久久久| 国产精品午夜久久| 久久精品国产清高在天天线| 19禁羞羞电影院在线观看| 岛国片在线观看| 亚洲成人黄色片| 欧美成人精品1314www| 青青草成人在线观看| 婷婷综合在线| 一区在线电影|