国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

MySQL 實戰(zhàn)筆記 第02期:MySQL 元數(shù)據(jù)鎖

數(shù)據(jù)庫 MySQL
當我們在 MySQL 中執(zhí)行 DDL 語句時,經(jīng)常會發(fā)現(xiàn)語句沒有在你預期的時間完成,這時候我們通常會使用 show full processlist ,來看看發(fā)生了什么狀況。當你看到 waiting for table metadata lock 時,那就碰到元數(shù)據(jù)鎖了。那元數(shù)據(jù)鎖是怎樣產(chǎn)生的又應該怎樣避免呢?讓我們從這篇文章開始了解它。

當我們在 MySQL 中執(zhí)行 DDL 語句時,經(jīng)常會發(fā)現(xiàn)語句沒有在你預期的時間完成,這時候我們通常會使用 show full processlist ,來看看發(fā)生了什么狀況。當你看到 waiting for table metadata lock 時,那就碰到元數(shù)據(jù)鎖了。那元數(shù)據(jù)鎖是怎樣產(chǎn)生的又應該怎樣避免呢?讓我們從這篇文章開始了解它。

1、什么是元數(shù)據(jù)鎖

MDL 全稱為 metadata lock,即元數(shù)據(jù)鎖,一般也可稱為字典鎖。MDL 的主要作用是為了管理數(shù)據(jù)庫對象的并發(fā)訪問和確保元數(shù)據(jù)一致性。元數(shù)據(jù)鎖適用對象包含:table、schema、procedures, functions, triggers, scheduled events、tablespaces 。

2、加鎖規(guī)則

獲取規(guī)則:

  • 語句逐個( one by one )獲取元數(shù)據(jù)鎖,不是同時獲取,并在獲取過程中執(zhí)行死鎖檢測。
  • DML 語句獲取鎖按照語句中 table 出現(xiàn)的順序來獲取鎖。
  • DDL 語句、LOCK TABLES 和其他類似語句按名稱順序獲取鎖,對于隱式使用的表(例如外鍵關(guān)系中也必須鎖定的表)可能會以不同的順序獲取鎖。
  • DDL 的寫鎖請求優(yōu)先級高于 DML

3、模擬加鎖規(guī)則

兩個相同表結(jié)構(gòu)的表 t 和 t_new 開始。三個線程來操作這些表:

場景一

線程 1:

  1. LOCK TABLE t WRITE, t_new WRITE; 

該語句按表名順序在 t 和 t_new 上獲取寫鎖

線程 2:

  1. INSERT INTO t VALUES(1); 

該語句處于也需要獲取表 t 上的 MDL 所以處于等待狀態(tài)

線程 3:

  1. RENAME TABLE t TO t_old, t_new TO t; 

該語句需要按表名順序在 t 、t_new、t_old 上獲取互斥鎖,所以也處于等待狀態(tài)

線程 1:

  1. UNLOCK TABLES; 

該語句釋放對 t 和 t_new 的寫鎖定。線程 3 對 t 加寫鎖的優(yōu)先級高于 線程 2 ,因此線程 3 在 t 上優(yōu)先獲得互斥鎖,然后依次在 t_new、t_old 上獲取互斥鎖,執(zhí)行重命名后釋放其鎖定。線程 2 獲得 t 上的寫鎖,執(zhí)行插入操作,然后釋放其鎖定。rename 操作在 insert 之前執(zhí)行。

場景二

兩個具有相同表結(jié)構(gòu)的表 t 和 new_t ,同樣是三個線程來操作這些表

線程 1:

  1. LOCK TABLE t WRITE, new_t WRITE; 

該語句按表名順序在 new_t 和 t 上獲取寫鎖

線程 2:

  1. INSERT INTO t VALUES(1); 

該語句處于也需要獲取表 t 上的 MDL 所以處于等待狀態(tài)

線程 3:

  1. RENAME TABLE t TO old_t, new_t TO t; 

該語句需要按表名順序在 new_t 、old_t、t 上獲取互斥鎖,所以也處于等待狀態(tài)

該語句釋放對 t 和 new_t 的寫鎖定。對于 t 首先發(fā)起鎖請求的是線程 2 ,因此線程 2 優(yōu)先獲得了 t 上的元數(shù)據(jù)寫鎖,執(zhí)行完插入操作,然后釋放該鎖。線程 3 首先獲取的是 new_t 、old_t 的互斥鎖,最后才會請求 t 上的互斥鎖,所以線程 3 在線程 2 執(zhí)行完畢之前都是處于等待狀態(tài)的。rename 操作在 insert 操作之后。

4、 如何監(jiān)控元數(shù)據(jù)鎖

performance_schema.metadata_locks 表中記錄了元數(shù)據(jù)鎖相關(guān)的信息,開啟方式如下:在線開啟 metadata_locks,操作如下:

  1. --UPDATE performance_schema.setup_consumers SET ENABLED = 'YES' WHERE NAME ='global_instrumentation'; 
  2. --此值默認已開啟了,可檢查確認。 
  3.  
  4. UPDATE performance_schema.setup_instruments SET ENABLED = 'YES' WHERE NAME ='wait/lock/metadata/sql/mdl'

若可停庫維護,則在 my.cnf 中添加如下:

  1. [mysqld] 
  2. performance-schema-instrument='wait/lock/metadata/sql/mdl=ON' 

5、如何優(yōu)化元數(shù)據(jù)鎖

MDL 鎖一旦發(fā)生會對業(yè)務造成極大影響,因為后續(xù)所有對該表的訪問都會被阻塞,造成連接積壓。我們?nèi)粘RM量避免 MDL 鎖的發(fā)生,下面給出幾點優(yōu)化建議可供參考:

  • 開啟 metadata_locks 表記錄 MDL 鎖。
  • 設置參數(shù) lock_wait_timeout 為較小值,使被阻塞端主動停止。
  • 規(guī)范使用事務,及時提交事務,避免使用大事務。
  • 增強監(jiān)控告警,及時發(fā)現(xiàn) MDL 鎖。
  • DDL 操作及備份操作放在業(yè)務低峰期執(zhí)行。 

 

責任編輯:龐桂玉 來源: 楊建榮的學習筆記
相關(guān)推薦

2020-12-24 17:40:00

MySQL角色管理數(shù)據(jù)庫

2024-02-01 12:32:35

MySQL數(shù)據(jù)鎖數(shù)據(jù)庫

2018-01-18 20:47:18

CPU數(shù)據(jù)線程

2018-06-21 13:50:33

MySQL主從信息元數(shù)據(jù)

2021-12-14 08:10:00

MySQL行鎖間隙鎖

2009-06-18 14:20:45

hibernate實戰(zhàn)

2009-06-16 13:09:15

Hibernate實戰(zhàn)Hibernate

2022-03-29 10:52:08

MySQL數(shù)據(jù)庫

2010-11-22 14:27:05

MySQL鎖表

2017-07-10 13:38:07

MySQL數(shù)據(jù)類型整數(shù)類型

2017-06-14 23:08:29

報表數(shù)據(jù)計算層

2022-02-08 17:39:04

MySQL服務器存儲

2016-07-15 09:08:12

V課堂數(shù)字化制造

2024-03-04 07:37:40

MySQL記錄鎖

2023-12-06 07:33:20

MySQL鎖事間隙鎖

2020-02-06 10:02:45

MySQL數(shù)據(jù)庫全局鎖

2010-06-04 09:33:28

連接MySQL數(shù)據(jù)庫

2021-12-13 17:36:14

技術(shù)資訊

2018-05-21 16:13:18

工業(yè)互聯(lián)網(wǎng)信息化通信
點贊
收藏

51CTO技術(shù)棧公眾號

91网站免费观看| 色噜噜夜夜夜综合网| 97超级碰碰人国产在线观看| 午夜精彩视频| 99精品欧美| 亚洲欧洲日产国码av系列天堂| 在线免费观看一区二区三区| 国产视频在线看| 国产精品私人自拍| 久久国产精品一区二区三区| 中老年在线免费视频| 久久精品一区四区| 美日韩精品视频免费看| 动漫一区在线| 国产精品欧美一区喷水| 91精品久久久久久久久久久久久久| 欧美人xxx| 先锋影音久久久| 91九色国产社区在线观看| 羞羞视频在线观看不卡| 亚洲精品国产一区二区三区四区在线| 亚洲欧美精品| 91精品久久久久久综合五月天| 欧美精品一区二区三区很污很色的| 成年人视频在线免费| 日韩av不卡一区二区| 久久精品国产一区二区三区| 奇米影视888狠狠狠777不卡| 成人丝袜18视频在线观看| 久久精品国产精品亚洲精品色| 97一区二区国产好的精华液| 亚洲国产精品yw在线观看 | 国产调教视频在线观看| 久久亚洲精华国产精华液| 久久成人精品视频| 免费电影网站在线视频观看福利| 亚洲一区二区中文在线| 免费欧美一级视频| 免费精品国产的网站免费观看| 在线观看国产成人av片| 国产在线观看免费| 色婷婷综合在线| 夜色福利刺激| 亚洲精品动漫100p| 中文av资源在线| 欧美日韩www| 91吃瓜网在线观看| 欧美午夜美女看片| 国产精品videossex撒尿| 国产亚洲精品久久| 成人国产精品| 久久精品国亚洲| 韩国av电影免费观看| 亚洲一区视频在线| 欧美女优在线观看| 亚洲免费电影在线| 福利一区二区| 国产精国产精品| 好吊一区二区三区| 蜜桃网站成人| 国产视频二区| 四虎影视精品| 成人黄色在线观看| 亚洲国产三级| 日本成人中文字幕在线| 久久九九国产精品| 国产乱妇乱子| 免费在线欧美黄色| 男女猛烈激情xx00免费视频| 久久在线观看免费| 幼a在线观看| 国产欧美日韩最新| 久久国产夜色精品鲁鲁99| 免费在线激情视频| 国产精品久久久久久久裸模| 97欧美成人| 偷拍视频一区二区| 亚洲精品成人在线| 久久77777| 91视频婷婷| 精品999在线播放| 美女黄视频在线播放| 久久一二三国产| 情se视频网在线观看| 一级做a爰片久久毛片美女图片| 在线成人国产| 日本中文字幕网址| 久久精品久久久久电影| 99精品黄色片免费大全| 天堂va在线高清一区| 蜜臀av免费观看| 国产福利成人在线| 久久国产福利国产秒拍| sm捆绑调教国产免费网站在线观看| 欧美成人dvd在线视频| 欧美猛男男办公室激情| 日日嗨av一区二区三区四区| 午夜视频成人| 在线观看av的网址| 欧美在线视频网| 国产一区二区免费视频| 成人看av片| 国自产拍偷拍精品啪啪一区二区| 久久久91精品国产| 91福利国产精品| 丝袜美腿亚洲一区二区图片| 神马久久午夜| 黑人巨大精品欧美一区二区奶水| 成人国产一区二区| 亚洲欧美综合图区| 亚洲一区二区视频在线观看| 亚洲激情网址| 夜鲁夜鲁夜鲁视频在线播放| 日韩欧美在线免费观看视频| 免费国产一区二区| 国产精品香蕉在线观看| 欧美xxxx18国产| 欧美一区二区三区免费视频| 亚洲一区二区精品3399| 久久中文娱乐网| 国产成人免费网站| 日韩在线中文| 岛国中文字幕在线| 亚洲欧美自偷自拍另类| 精品欧美一区二区三区久久久| 色婷婷综合成人| 欧美一区二区三区免费在线看| 中文字幕亚洲一区二区va在线| 国产亚洲精品bv在线观看| 久久精品亚洲成在人线av网址| 在线观看h网| 日本在线免费| 欧美欧美欧美| 日韩精品视频无播放器在线看| 中文字幕av日韩精品| 91精品免费| 日韩av不卡电影| 日韩在线视频二区| 一区二区亚洲欧洲国产日韩| 在线观看免费视频综合| 国产调教视频一区| 99精品国产热久久91蜜凸| 激情欧美一区| 天天综合网网欲色| 狠狠做深爱婷婷综合一区| 亚欧激情乱码久久久久久久久| 1区2区3区欧美| 国产精品久久久久77777丨| 成人在线免费在线观看| 日韩三级中文字幕| 日韩国产欧美视频| 老司机2019福利精品视频导航 | 开心色怡人综合网站| 51精品久久久久久久蜜臀| 亚洲看片免费| 欧美色综合网| 久久神马影院| 日韩久久久久| 开心久久婷婷综合中文字幕| 麻豆蜜桃在线| 深夜国产在线播放| 一色桃子av在线| 在线中文字幕观看| 69ww免费视频播放器| 国产网红在线| wwwwww99| 看电影就来5566av视频在线播放| 成人免费看黄网址| 922tv免费观看在线| 国产美女玉足交| 电影av在线| 浪潮色综合久久天堂| 色婷婷成人网| 一二三区不卡| 91看片淫黄大片一级| 国产欧美日韩另类视频免费观看| 国产欧美日韩卡一| 欧美日韩另类一区| 亚洲少妇激情视频| 国产一区二区三区免费视频| 亚洲午夜精品一区二区三区他趣| 欧美日韩国产在线看| 亚洲精品mp4| 国产激情视频一区| 天堂精品一区二区三区| 老熟妇仑乱视频一区二区| 国产精品毛片一区二区三区四区| 最新电影电视剧在线观看免费观看| 性欧美16一18| 国产高清精品二区| 久久成人一区| 亚洲女女做受ⅹxx高潮| 精品国免费一区二区三区| 91精品国产乱码久久久久久蜜臀| 91精品久久久久久| 麻豆av免费在线| 女厕盗摄一区二区三区| 亚洲福利专区| 色狠狠色狠狠综合| 91在线观看免费高清完整版在线观看|