成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 詳細分析mysql MDL元數(shù)據(jù)鎖

詳細分析mysql MDL元數(shù)據(jù)鎖

熱門標簽:臨沂做地圖標注 廣東400企業(yè)電話申請流程 咸陽防封電銷卡 許昌外呼增值業(yè)務(wù)線路 新鄉(xiāng)智能外呼系統(tǒng)好處 申請400電話電話價格 地圖標注客戶付款 宜賓全自動外呼系統(tǒng)廠家 石家莊400電話辦理公司

前言:

當你在MySQL中執(zhí)行一條SQL時,語句并沒有在你預(yù)期的時間內(nèi)執(zhí)行完成,這時候我們通常會登陸到MySQL數(shù)據(jù)庫上查看是不是出了什么問題,通常會使用的一個命令就是 show processlist,看看有哪些session,這些session在做什么事情。當你看到 waiting for table metadata lock 時,那就是遇到MDL元數(shù)據(jù)鎖了。本篇文章將會介紹MDL鎖的產(chǎn)生與排查過程。

1.什么是MDL鎖

MDL全稱為metadata lock,即元數(shù)據(jù)鎖。MDL鎖主要作用是維護表元數(shù)據(jù)的數(shù)據(jù)一致性,在表上有活動事務(wù)(顯式或隱式)的時候,不可以對元數(shù)據(jù)進行寫入操作。因此從MySQL5.5版本開始引入了MDL鎖,來保護表的元數(shù)據(jù)信息,用于解決或者保證DDL操作與DML操作之間的一致性。

對于引入MDL,其主要解決了2個問題,一個是事務(wù)隔離問題,比如在可重復(fù)隔離級別下,會話A在2次查詢期間,會話B對表結(jié)構(gòu)做了修改,兩次查詢結(jié)果就會不一致,無法滿足可重復(fù)讀的要求;另外一個是數(shù)據(jù)復(fù)制的問題,比如會話A執(zhí)行了多條更新語句期間,另外一個會話B做了表結(jié)構(gòu)變更并且先提交,就會導(dǎo)致slave在重做時,先重做alter,再重做update時就會出現(xiàn)復(fù)制錯誤的現(xiàn)象。

元數(shù)據(jù)鎖是server層的鎖,表級鎖,每執(zhí)行一條DML、DDL語句時都會申請MDL鎖,DML操作需要MDL讀鎖,DDL操作需要MDL寫鎖(MDL加鎖過程是系統(tǒng)自動控制,無法直接干預(yù),讀讀共享,讀寫互斥,寫寫互斥),申請MDL鎖的操作會形成一個隊列,隊列中寫鎖獲取優(yōu)先級高于讀鎖。一旦出現(xiàn)寫鎖等待,不但當前操作會被阻塞,同時還會阻塞后續(xù)該表的所有操作。事務(wù)一旦申請到MDL鎖后,直到事務(wù)執(zhí)行完才會將鎖釋放。(這里有種特殊情況如果事務(wù)中包含DDL操作,mysql會在DDL操作語句執(zhí)行前,隱式提交commit,以保證該DDL語句操作作為一個單獨的事務(wù)存在,同時也保證元數(shù)據(jù)排他鎖的釋放)。

注意:支持事務(wù)的InnoDB引擎表和不支持事務(wù)的MyISAM引擎表,都會出現(xiàn)Metadata Lock Wait等待現(xiàn)象。一旦出現(xiàn)Metadata Lock Wait等待現(xiàn)象,后續(xù)所有對該表的訪問都會阻塞在該等待上,導(dǎo)致連接堆積,業(yè)務(wù)受影響。

2.模擬與查找MDL鎖

MDL鎖通常發(fā)生在DDL操作掛起的時候,原因是有未提交的事務(wù)對該表進行DML操作。而MySQL的會話那么多,不知道哪個會話的操作沒有及時提交影響了DDL。通常我們排查這類問題,往往需要從information_schema.innodb_trx表中查詢當前在執(zhí)行的事務(wù),但當SQL已經(jīng)執(zhí)行過了,沒有commit,這個時候這個表中是看不到SQL的。

在MySQL5.7中,performance_schema庫中新增了metadata_locks表,專門記錄MDL的相關(guān)信息。首先要開啟MDL鎖記錄,執(zhí)行如下SQL開啟:

UPDATE performance_schema.setup_instruments
SET ENABLED = 'YES', TIMED = 'YES'
WHERE NAME = 'wait/lock/metadata/sql/mdl';

下面展示下模擬及查找MDL鎖的過程:

# 會話1 事務(wù)中執(zhí)行DML操作
mysql> begin;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into student_tb (stu_id,stu_name) values (1009,'xin');
Query OK, 1 row affected (0.00 sec)

mysql> select * from student_tb;
+--------------+--------+----------+---------------------+---------------------+
| increment_id | stu_id | stu_name | create_time   | update_time   |
+--------------+--------+----------+---------------------+---------------------+
|   1 | 1001 | from1 | 2019-11-28 16:36:14 | 2019-11-28 16:36:14 |
|   2 | 1002 | dfsfd | 2019-11-28 16:36:14 | 2019-11-28 16:36:14 |
|   3 | 1003 | fdgfg | 2019-11-28 16:36:14 | 2019-11-28 16:36:14 |
|   4 | 1004 | sdfsdf | 2019-11-28 16:36:14 | 2019-11-28 16:36:14 |
|   5 | 1005 | dsfsdg | 2019-11-28 16:36:14 | 2019-11-28 16:36:14 |
|   6 | 1006 | fgd  | 2019-11-28 16:36:14 | 2019-11-28 16:36:14 |
|   7 | 1007 | fgds  | 2019-11-28 16:36:14 | 2019-11-28 16:36:14 |
|   8 | 1008 | dgfsa | 2019-11-28 16:36:14 | 2019-11-28 16:36:14 |
|   9 | 1009 | xin  | 2019-11-28 17:05:29 | 2019-11-28 17:05:29 |
+--------------+--------+----------+---------------------+---------------------+

# 會話2 對該表加字段 執(zhí)行DDL操作 發(fā)現(xiàn)DDL掛起
mysql> alter table student_tb add stu_age int after stu_name;

# 會話3 查詢所有會話 發(fā)現(xiàn)發(fā)生MDL鎖
mysql> show processlist;
+----+------+-----------+--------+---------+------+---------------------------------+-------------------------------------------------------+
| Id | User | Host  | db  | Command | Time | State       | Info             |
+----+------+-----------+--------+---------+------+---------------------------------+-------------------------------------------------------+
| 31 | root | localhost | testdb | Sleep | 125 |         | NULL             |
| 32 | root | localhost | testdb | Query | 7 | Waiting for table metadata lock | alter table student_tb add stu_age int after stu_name |
| 33 | root | localhost | testdb | Query | 0 | starting      | show processlist          |
+----+------+-----------+--------+---------+------+---------------------------------+-------------------------------------------------------+

# 會話3 查看metadata_locks表記錄 發(fā)現(xiàn)student_tb表有MDL鎖沖突
mysql> select * from performance_schema.metadata_locks;
+-------------+--------------------+----------------+-----------------------+---------------------+---------------+-------------+--------+-----------------+----------------+
| OBJECT_TYPE | OBJECT_SCHEMA  | OBJECT_NAME | OBJECT_INSTANCE_BEGIN | LOCK_TYPE   | LOCK_DURATION | LOCK_STATUS | SOURCE | OWNER_THREAD_ID | OWNER_EVENT_ID |
+-------------+--------------------+----------------+-----------------------+---------------------+---------------+-------------+--------+-----------------+----------------+
| TABLE  | testdb    | student_tb  |  94189250717664 | SHARED_WRITE  | TRANSACTION | GRANTED  |  |    56 |    34 |
| GLOBAL  | NULL    | NULL   |  139764477045472 | INTENTION_EXCLUSIVE | STATEMENT  | GRANTED  |  |    57 |    18 |
| SCHEMA  | testdb    | NULL   |  139764477697808 | INTENTION_EXCLUSIVE | TRANSACTION | GRANTED  |  |    57 |    18 |
| TABLE  | testdb    | student_tb  |  139764477697904 | SHARED_UPGRADABLE | TRANSACTION | GRANTED  |  |    57 |    18 |
| TABLE  | testdb    | student_tb  |  139764477697696 | EXCLUSIVE   | TRANSACTION | PENDING  |  |    57 |    18 |
| TABLE  | performance_schema | metadata_locks |  139764544135120 | SHARED_READ   | TRANSACTION | GRANTED  |  |    58 |    20 |
+-------------+--------------------+----------------+-----------------------+---------------------+---------------+-------------+--------+-----------------+----------------+

# 會話3 聯(lián)合其他系統(tǒng)表 查找出會話ID
mysql> select m.*,t.PROCESSLIST_ID from performance_schema.metadata_locks m left join performance_schema.threads t on m.owner_thread_id=t.thread_id;
+-------------+--------------------+----------------+-----------------------+---------------------+---------------+-------------+--------+-----------------+----------------+----------------+
| OBJECT_TYPE | OBJECT_SCHEMA  | OBJECT_NAME | OBJECT_INSTANCE_BEGIN | LOCK_TYPE   | LOCK_DURATION | LOCK_STATUS | SOURCE | OWNER_THREAD_ID | OWNER_EVENT_ID | PROCESSLIST_ID |
+-------------+--------------------+----------------+-----------------------+---------------------+---------------+-------------+--------+-----------------+----------------+----------------+
| TABLE  | testdb    | student_tb  |  94189250717664 | SHARED_WRITE  | TRANSACTION | GRANTED  |  |    56 |    34 |    31 |
| GLOBAL  | NULL    | NULL   |  139764477045472 | INTENTION_EXCLUSIVE | STATEMENT  | GRANTED  |  |    57 |    18 |    32 |
| SCHEMA  | testdb    | NULL   |  139764477697808 | INTENTION_EXCLUSIVE | TRANSACTION | GRANTED  |  |    57 |    18 |    32 |
| TABLE  | testdb    | student_tb  |  139764477697904 | SHARED_UPGRADABLE | TRANSACTION | GRANTED  |  |    57 |    18 |    32 |
| TABLE  | testdb    | student_tb  |  139764477697696 | EXCLUSIVE   | TRANSACTION | PENDING  |  |    57 |    18 |    32 |
| TABLE  | performance_schema | metadata_locks |  139764544135120 | SHARED_READ   | TRANSACTION | GRANTED  |  |    58 |    22 |    33 |
| TABLE  | performance_schema | threads  |  139764549217280 | SHARED_READ   | TRANSACTION | GRANTED  |  |    58 |    22 |    33 |
+-------------+--------------------+----------------+-----------------------+---------------------+---------------+-------------+--------+-----------------+----------------+----------------+

# 結(jié)果解讀:從上面結(jié)果明顯可以看出會話31持有student_tb表的SHARED_WRITE鎖,
# 需要等待其提交后或手動殺掉該會話方可解除MDL鎖。

3.如何優(yōu)化與避免MDL鎖

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

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

總結(jié):

本篇文章主要分三方面來詳解MDL鎖,首先介紹了MDL鎖產(chǎn)生的原因及作用,然后我們模擬出MDL鎖,并給出查找及解決方法,最后給出幾點避免MDL鎖的建議。其實,MDL鎖在DB運維過程中經(jīng)常遇到,它不是洪水猛獸,只是為了保護數(shù)據(jù)庫對象,保證數(shù)據(jù)一致性。希望大家看完這篇文章后能對MDL鎖有更清晰的認識。

以上就是詳細分析mysql MDL元數(shù)據(jù)鎖的詳細內(nèi)容,更多關(guān)于mysql MDL元數(shù)據(jù)鎖的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • MySQL如何查看元數(shù)據(jù)鎖阻塞在哪里
  • MYSQL METADATA LOCK(MDL LOCK)MDL鎖問題分析

標簽:臺灣 日照 鷹潭 鎮(zhèn)江 北京 阜新 合肥 貴州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《詳細分析mysql MDL元數(shù)據(jù)鎖》,本文關(guān)鍵詞  詳細,分析,mysql,MDL,元,數(shù)據(jù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳細分析mysql MDL元數(shù)據(jù)鎖》相關(guān)的同類信息!
  • 本頁收集關(guān)于詳細分析mysql MDL元數(shù)據(jù)鎖的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    天天爽夜夜爽| lutube成人福利在线观看| 亚洲美女www午夜| 日韩亚洲欧美一区二区三区| 亚洲视频第一页| 高清国产在线一区| av不卡在线播放| 国产精品乱码一区二区视频| 66精品视频在线观看| 国产一区视频免费观看| 国产精品视频中文字幕91| 538任你躁精品视频网免费| 成人不卡视频| 成人午夜免费在线观看| 国产专区一区二区三区| 久久av电影| 91牛牛免费视频| 国模私拍一区二区国模曼安| 欧美sm视频| av第一福利大全导航| 福利片免费在线观看| 亚洲欧美国产另类| 久久国产精品久久久久久电车| 麻豆中文字幕在线观看| 中文字幕你懂的| 丰满的亚洲女人毛茸茸| 国产一级做a爰片在线看免费| 国产又大又粗又爽的毛片| 超碰一区二区| 久久综合久久88| 亚洲男同性视频| 不卡的国产精品| 日韩视频一区在线| 亚洲欧洲一区| 亚洲色大成网站www久久九九| 亚洲综合一二区| 日韩中文字幕一区二区三区| 免费观看成人在线视频| 欧美日韩亚洲一区二区三区在线观看| 欧美xxxx性猛交bbbb| 亚洲视频在线观看免费| 日本精品一二三| 亚洲婷婷久久综合| 日韩欧美亚洲精品| 人成网站在线观看| 91成人国产在线观看| 日韩精品成人av| 裸体素人女欧美日韩| 中文字幕亚洲一区二区va在线| 欧美久久一二三四区| 国产精品一区二区欧美| 色之综合天天综合色天天棕色| 亚洲v日本v欧美v久久精品| 四虎国产精品免费观看| 2021国产精品视频| 少女频道在线观看免费播放电视剧| 99精品免费| 中文字幕视频免费在线观看| 久久久久久久久亚洲精品| 国产一区二区视频免费在线观看| 中日精品一色哟哟| 国产精品女同互慰在线看| 91精品日本| 欧美手机视频| 亚洲一线二线三线视频| 欧美精品日韩| 羞羞视频网站在线免费观看| 日本黄色免费观看| 亚洲人体大胆视频| **精品中文字幕一区二区三区| 亚洲欧洲美洲av| 亚洲最大网站| 亚洲精品影院在线| 粉嫩av一区二区夜夜嗨| 亚洲男人天堂| 午夜免费激情视频| 久久久久麻豆v国产精华液好用吗| 在线观看欧美黄色| 一本—道久久a久久精品蜜桃| 在线播放豆国产99亚洲| 97久久网站| 男人天堂综合| 精品入口蜜桃| 大地资源二中文在线影视观看| 国产中文字幕在线免费观看| 红桃视频一区二区三区免费| 色婷婷综合激情| 韩国精品福利一区二区三区| 国产精品视频在线观看| 亚洲欧美日韩一区在线观看| 不卡视频一区| 国产福利一区二区三区在线播放| 日本高清不卡aⅴ免费网站| 免费一区二区三区视频导航| 国产精品入口夜色视频大尺度| 国产成人精品一区二区三区在线观看| 亚洲理伦在线| 91精品国产综合久久精品图片| 欧美女同一区| 久热精品在线观看视频| 欧美bbbbxxxx| 中文字幕高清20页| www.黄色国产| 一区二区三区日韩欧美| 久久精品亚洲乱码伦伦中文| а√天堂8资源在线| av资源吧首页| 免费亚洲网站| 国产福利电影在线播放| 99亚洲男女激情在线观看| 99久久视频| 韩国一区二区三区| 暴力调教一区二区三区| 中文字幕第一页在线| 欧美成aaa人片免费看| 久久精品一区八戒影视| 一级日本免费的| 性欧美freesex顶级少妇| 91豆花视频在线播放| 制服丝袜综合网| 欧美日韩视频在线一区二区| 国产情侣自拍小视频| 欧美专区日韩视频| 成人免费高清观看| 欧美日韩你懂得| 国产视频亚洲| 国产无套丰满白嫩对白| 一区免费视频| 亚洲青色在线| 日韩精品xxxx| ...xxx性欧美| 黄色无遮挡网站| 欧美—级高清免费播放| 先锋影音av资源站| 亚洲日本va午夜在线电影| 午夜精品一区二区三区电影天堂| 欧美精品一区二区三区国产精品| 欧美成人久久电影香蕉| 夜夜爽夜夜操| 精品美女永久免费视频| 亚洲天堂中文字幕| 啊v视频在线一区二区三区| 欧美性一二三区| 怡红院精品视频在线观看极品| 日本黄xxxxxxxxx100| 日韩欧美视频一区| 欧美肥老太太性生活| 日韩深夜视频| 一本久道久久综合无码中文| 日韩一区二区三区高清免费看看| 91九色最新地址| 国产伦精品一区| 99久久精品国产毛片| 国产资源在线观看| 欧美三级伦理在线| 亚洲女厕所小便bbb| 免费一级suv好看的国产网站| 午夜精品一区二区三区在线观看| 欧美一级视频精品观看| 久精品在线观看| 成人在线观看黄| 国产jjizz一区二区三区视频| 狠狠做六月爱婷婷综合aⅴ| 国产精品视频一区二区三区经| 一级欧美一级日韩片| 亚洲精品中文字幕乱码三区91| 欧美黑人xxxxx性受| 亚洲第一色网| 岛国av一区二区在线在线观看| 在线国产一区| 日韩乱码一区二区| 熟妇人妻无乱码中文字幕真矢织江| 免费中文字幕在线| 无码免费一区二区三区免费播放| 欧美午夜激情影院| 国产主播精品在线| 国产一区二区三区高清视频| 国产精品剧情一区二区在线观看| 国产精品亚洲综合天堂夜夜| 少妇激情一区二区三区视频| 欧美日韩不卡在线视频| 九九热免费视频| 国产中文在线视频| 中文字幕在线2019| 波多野结衣在线影院| 国产欧美日韩一区二区三区四区| 欧美gay视频| 91wwwcom在线观看| 国产一级视频在线播放| 成年人在线免费| 8888四色奇米在线观看| 午夜精品久久久久| 岛国av在线| 国内精品国产成人国产三级| www.亚洲视频.com| 成本人h片动漫网站在线观看| av大片免费观看| 欧美专区中文字幕| 97精品久久人人爽人人爽| 不卡av电影在线| 国产黄色片免费在线观看| 日韩电影免费一区| 91首页免费视频| 99国产精品视频免费观看| 99久热在线精品视频观看| 国内精品99| 欧美男男青年gay1069videost| 综合中文字幕亚洲| 亚洲精品久久久久久动漫器材一区| 日韩成人在线播放| 欧美高清xxxxxkkkkk| aa免费在线观看| 国产欧美一区二区三区国产幕精品| 丰满亚洲少妇av| a级国产乱理论片在线观看99| 国产精品一区二区免费不卡| 欧美亚洲日本| 国产剧情在线观看一区| 国产精品x8x8一区二区| 国产做受69高潮| 中文字幕一区二区三区av| 九九热这里只有精品6| 在线观看av免费| 亚洲AV无码成人精品区东京热| 最新欧美人z0oozo0| 欧洲亚洲成人| 岛国视频免费在线观看| 做爰高潮hd色即是空| 天天做天天爱天天高潮| 不卡视频在线观看| 国产亚洲精品午夜高清影院| 久久精品九九| 国产成人的电影在线观看| 国产一区二区成人久久免费影院| 性欧美长视频免费观看不卡| 欧美中文字幕在线观看视频| 欧美日韩国产综合视频在线| 欧美大胆性生话| 国产成人精品亚洲午夜麻豆| 日韩欧美国产精品一区二区三区| 欧美日韩国产一中文字不卡| 精品国产乱码久久久久久牛牛| 韩国主播福利视频一区二区三区| 欧美一区二区三区精品电影| 成年人在线网站| 国产麻豆一区二区三区在线观看| 在线你懂的视频| 国产精品66部| 91欧美精品成人综合在线观看| 在线色欧美三级视频| 成人亚洲一区二区一| 亚洲美女喷白浆| 日本精品久久久久久久久久| 亚洲爆乳无码一区二区三区| 韩日精品视频| 欧美日韩三区四区| 亚洲国产精品午夜在线观看| 国产成+人+综合+亚洲欧美丁香花| 久久99久久99精品免费看小说| 资源视频在线播放免费| 中国日韩欧美久久久久久久久| 国产精品igao视频| 久久久精品久久久久特色影视| 人妖欧美1区| 成人免费福利视频| 国产精品入口免费麻豆| 日韩av中字| 国产成人av电影在线| 国产精品三上| 波多野结衣一区二区三区| 精品一区二区三区免费站| 久久成人综合网| 鬼打鬼之黄金道士1992林正英| 久久高清免费| 高清视频在线www色| 欧美另类在线观看| 不卡av日日日| 在线播放豆国产99亚洲| 欧美本精品男人aⅴ天堂| 日韩美女在线看| 天堂v在线观看| 亚洲天堂视频网| 国产精品99久久久久久人| 91久久大香伊蕉在人线| 91日韩一区二区三区| 日本一卡二卡在线| 国产日韩av一区二区| 善良的小姨在线| 成人高潮aa毛片免费| 美女少妇全过程你懂的久久| 免费观看黄色的网站| 国产精品嫩草久久久久| 男人的天堂在线播放| 亚洲欧美日韩精品久久久| av在线看片| 欧美丰满艳妇bbwbbw| 国产精品男女猛烈高潮激情| 国产伦理精品不卡| 日韩精品一区二区三区swag| 亚洲午夜视频在线| 亚洲一区二区三区四区在线| 天天综合网色中文字幕| 中文字幕福利视频| av日韩免费电影| 久久香蕉精品香蕉| 中文字幕亚洲一区二区av在线| 中文在线播放一区二区| 一个色综合导航| 国产精品18久久久久久久久久久久| 亚洲AV无码一区二区三区少妇| 国产视频一二区| 久久视频这里只有精品| 国产亚洲欧美精品久久久久久| 国产女精品视频网站免费| 91成人短视频在线观看| 亚洲免费精品| 无码人妻久久一区二区三区蜜桃| 久久久久人妻精品一区三寸| 欧美福利视频网站| 国产精品第10页| 日韩电影网1区2区| 9色视频在线观看| 丝袜久久网站| 麻豆视频一区二区| 最近2019中文字幕第三页视频| 日韩一区二区视频在线| avtt综合网| 91香蕉视频在线观看|