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

主頁(yè) > 知識(shí)庫(kù) > Mysql解決USE DB堵塞詳解

Mysql解決USE DB堵塞詳解

熱門(mén)標(biāo)簽:銀川電銷(xiāo)外呼系統(tǒng)定制 電銷(xiāo)機(jī)器人好品牌門(mén)薩維l 做地圖標(biāo)注都需要什么工具 西安400電話在哪里辦理 甘孜電話機(jī)器人廠家 中科嘉智人工智能電銷(xiāo)機(jī)器人 上海智能外呼系統(tǒng)需要多少錢(qián) 凱立德科技館地圖標(biāo)注 哈爾濱crm外呼系統(tǒng)價(jià)格

遇到故障,我們往往想的是如何解決這個(gè)故障,而不是從故障的根本去思考出現(xiàn)這個(gè)故障的原因?這樣的結(jié)果,只能使我們得到了魚(yú),失去了漁。今天,我們就來(lái)分享一個(gè)由USE DB堵塞故障引發(fā)的思考案例。

故障描述

今天一個(gè)朋友遇到數(shù)據(jù)庫(kù)遇到一個(gè)嚴(yán)重的故障,故障環(huán)境如下:

MYSQL 5.6.16

RR隔離級(jí)別

GITD關(guān)閉

表現(xiàn)如下:

use db不能進(jìn)入數(shù)據(jù)庫(kù)

show table status不能查詢到表信息

schema.processlist來(lái)看有大量的 Waiting for table metadata lock

情急之下他殺掉了一大堆線程后發(fā)現(xiàn)還是不能恢復(fù),最后殺掉了一個(gè)沒(méi)有及時(shí)提交的事物才恢復(fù)正常。也僅僅留下了如下圖的一個(gè)截圖:

故障信息提取

還是回到上圖,我們可以歸納一下語(yǔ)句類(lèi)型如下:

1、CREATE TABLE A AS SELECT B

其STATE為 sending data

2、DROP TABLE A

其STATE為 Waiting for table metadata lock

3、SELECT * FROM A

其STATE為 Waiting for table metadata lock

4、 SHOW TABLE STATUS[like 'A']

其STATE為 Waiting for table metadata lock

信息分析

要分析出這個(gè)案列其實(shí)不太容易因?yàn)樗荕YSQL層MDL LOCK和RR模式innodb row lock的一個(gè)綜合案列,并且我們要對(duì)schema.processlist的STATE比較敏感才行。

建議先閱讀我的如下文章來(lái)學(xué)習(xí)MDL LOCK:

https://www.jb51.net/article/131383.htm

本節(jié)關(guān)于MDL LOCK的驗(yàn)證使用下面兩種方式:

方式一:筆者在MDL LOCK源碼加鎖函數(shù)處加日志輸出,如果要分析各種語(yǔ)句加MDL LOCK的類(lèi)型還只能用這種方式,因?yàn)镸DL LOCK加鎖往往一閃而過(guò),performance_schema.metadata_locks 沒(méi)有辦法觀察到。

方式二:處于堵塞情況下使用5.7版本的performance_schema.metadata_locks觀察。

在P_S中打開(kāi)mdl監(jiān)測(cè)方法如下:

一、關(guān)于CREATE TABLE A AS SELECT B 對(duì)B表sending data的分析

關(guān)于sending data這個(gè)狀態(tài)其實(shí)可以代表很多含義,從我現(xiàn)有的對(duì)的了解,這是MYSQL上層對(duì)SELECT類(lèi)型語(yǔ)句的這類(lèi)語(yǔ)句在INNODB層和MYSQL層進(jìn)行數(shù)據(jù)交互的時(shí)候一個(gè)統(tǒng)稱,所以出現(xiàn)它的可能包含:

確實(shí)需要訪問(wèn)數(shù)據(jù)量特別大,可能需要優(yōu)化。

由于INNODB 層的獲取row lock需要等待,比如我們常見(jiàn)的SELECT FOR UPDATE。

同時(shí)我們還需要注意在RR模式下SELECT B這一部分加鎖方式和INSERT...SELECT是一致的參考不再贅述:

從他反應(yīng)的情況因?yàn)樗谧詈髿⒌袅艘粋€(gè)長(zhǎng)期的未提交的事物所以他因?yàn)槭乔闆r2。并且整個(gè)CREATE TABLE A AS SELECT B語(yǔ)句由于B表上某些數(shù)據(jù)庫(kù)被上了鎖而不能獲取,導(dǎo)致整個(gè)語(yǔ)句處于sending data狀態(tài)下。

二、關(guān)于SHOW TABLE STATUS[like 'A'] Waiting for table metadata lock的分析

這是本案例中最重要的一環(huán),SHOW TABLE STATUS[like 'A']居然被堵塞其STATE為Waiting for table metadata lock并且注意這里是table因?yàn)镸DL LOCK類(lèi)型分為很多。我在MDL介紹的那篇文章中提到了desc 一個(gè)表的時(shí)候會(huì)上MDL_SHARED_HIGH_PRIO(SH),其實(shí)在SHOW TABLE STATUS的時(shí)候也會(huì)對(duì)本表上MDL_SHARED_HIGH_PRIO(SH)。

方式一

方式二

兩種方式都能觀察到MDL_SHARED_HIGH_PRIO(SH)的存在并且我模擬的是處于堵塞情況下的。

但是MDL_SHARED_HIGH_PRIO(SH) 是一個(gè)優(yōu)先級(jí)非常高的一個(gè)MDL LOCK類(lèi)型表現(xiàn)如下:

兼容性:

阻塞隊(duì)列優(yōu)先級(jí):

其被堵塞的條件除了被MDL_EXCLUSIVE(X)堵塞沒(méi)有其他的可能。那么這就是一個(gè)非常重要的突破口。

三、關(guān)于CREATE TABLE A AS SELECT B 對(duì)A表的加MDL LOCK的分析

這一點(diǎn)也是我以前不知道的,也是本案列中花時(shí)間最多的地方,前文已經(jīng)分析過(guò)要讓SHOW TABLE STATUS[like 'A']這種只會(huì)上MDL_SHARED_HIGH_PRIO(SH) MDL LOCK的語(yǔ)句堵塞在MDL LOCK上只有一種可能那就是A表上了MDL_EXCLUSIVE(X)。

那么我開(kāi)始懷疑這個(gè)DDL語(yǔ)句在語(yǔ)句結(jié)束之前會(huì)對(duì)A表上MDL_EXCLUSIVE(X) ,然后進(jìn)行實(shí)際測(cè)試不出所料確實(shí)是這樣的如下:

方式一

方式二

這里比較遺憾在performance_schema.metadata_locks中并沒(méi)有顯示出MDL_EXCLUSIVE(X),而顯示為MDL_SHARED(S)是我們?cè)谖逸敵龅娜罩局锌梢钥吹竭@里做了升級(jí)操作將MDL_SHARED(S) 升級(jí)為了MDL_EXCLUSIVE(X)。并且由前面的兼容性列表來(lái)看,只有MDL_EXCLUSIVE(X)會(huì)堵塞MDL_SHARED_HIGH_PRIO(SH)。所以我們應(yīng)該能夠確認(rèn)這里確實(shí)做了升級(jí)操作,否則SHOW TABLE STATUS[like 'A'] 是不會(huì)被堵塞的。

四、關(guān)于SELECT * FROM A Waiting for table metadata lock的分析

也許大家認(rèn)為SELECT不會(huì)上鎖,但是那是在innodb 層次,在MYSQL層會(huì)上MDL_SHARED_READ(SR) 如下:

方式一

方式二

可以看到確實(shí)有MDL_SHARED_READ(SR)的存在,當(dāng)前處于堵塞狀態(tài)

其兼容性如下:

顯然MDL_SHARED_READ(SR) 和MDL_SHARED_HIGH_PRIO(SH)是不兼容的需要等待。

五、關(guān)于DROP TABLE A Waiting for table metadata lock的分析

這一點(diǎn)很好分析因?yàn)锳表上了X鎖而DROP TABLE A必然上MDL_EXCLUSIVE(X)鎖它當(dāng)然和MDL_EXCLUSIVE(X)不兼容。如下:

方式一

方式二

其中EXCLUSIVE就是我們說(shuō)的MDL_EXCLUSIVE(X)它確實(shí)存在當(dāng)前處于堵塞

六、為何use db也會(huì)堵塞?

如果使用mysql客戶端不使用-A選項(xiàng)(或者 no-auto-rehash)在USE DB的時(shí)候至少要做如下事情:

1、 對(duì)db下每個(gè)表上MDL (SH) lock如下(調(diào)用MDL_context::acquire_lock 這里給出堵塞時(shí)候的信息)

方式一

方式二

可以看到USE DB確實(shí)也因?yàn)镸DL_SHARED_HIGH_PRIO(SH) 發(fā)生了堵塞。

2、對(duì)每個(gè)表加入到table cache,并且打開(kāi)表(調(diào)用open_table_from_share())

那么這種情況就和SHOW TABLE STATUS[like 'A']被堵塞的情況一模一樣了,也是由于MDL 鎖不兼容造成的。

分析梳理

有了前面的分析那么我們可以梳理這個(gè)故障發(fā)生的原因如下:

有一個(gè)在B表上長(zhǎng)期未提交的DML
語(yǔ)句會(huì)在innodb層對(duì)B表某些數(shù)據(jù)加innodb row lock。

由步驟1引起了CREATE TABLE A AS SELECT B的堵塞
因?yàn)镽R模式下SELECT B必然對(duì)B表上滿足的數(shù)據(jù)上鎖,因?yàn)椴襟E1已經(jīng)加鎖所以觸發(fā)等待,STATE為sending data。

由步驟2引起了其他語(yǔ)句的堵塞
因?yàn)镃RATE TABLE A AS SELECT B在A表建立完成之前會(huì)上MDL_EXCLUSIVE(X),這把鎖會(huì)堵塞其他全部的關(guān)于A表的語(yǔ)句,包括DESC/SHOW TABLE STATUS/USE DB(非-A) 這種只上MDL_SHARED_HIGH_PRIO(SH)MDL LOCK 的語(yǔ)句。STATE統(tǒng)一為Waiting for table metadata lock。

模擬測(cè)試

測(cè)試環(huán)境:

5.7.14

GITD關(guān)閉

RR隔離級(jí)別

使用腳本:

步驟如下:

session1

session2 session3 session4------use test;---use test;begin; delete from b;------------use test;create table a asselect * from b;(由于b表innodb row lock堵塞)------------show table status like 'a';(由于a表MDL LOCK堵塞)------------use test(由于a表MDL LOCK堵塞)

最后我們看到的等待狀態(tài)如下:

這樣我們就完美的模擬出線上的狀態(tài),如果我們殺掉session1中的事物,自然就全部解鎖了,讓我們?cè)賮?lái)看一下performance_schema.metadata_locks中的輸出:

我們可以看到如上的輸出,但是需要注意LOCK_TYPE: SHARED它不可能堵塞LOCK_TYPE: SHARED_HIGH_PRIO(可以參考附錄或者我以前寫(xiě)的MDL LOCK分析的文章)如上文分析這里實(shí)際上是做了升級(jí)操作升級(jí)為了MDL_EXCLUSIVE(X)。

總結(jié)

RC模式下雖然CREATE TABLE A SELECT B中B表不會(huì)上任何INNODB ROW LOCK但是如果B表非常大那么A表也會(huì)處于MDL_EXCLUSIVE(X)保護(hù)下,因此也會(huì)觸發(fā)USE DB\SHOW TABLE STATUS等待的情況。

如果打開(kāi)GTID不能使用CREATE TABLE A SELECT B這樣的語(yǔ)句。

對(duì)于DML/DDL混用的系統(tǒng)一定要注意并發(fā),就像本例中如果注意到高并發(fā)下的情況可以想辦法避免。

這個(gè)案列再次說(shuō)明了長(zhǎng)期不提交的事物可能引發(fā)悲劇,所以建議監(jiān)控超過(guò)N秒沒(méi)結(jié)束的事務(wù)。

附錄

MDL LOCK TYPE

兼容性矩陣

等待隊(duì)列優(yōu)先級(jí)矩陣

標(biāo)簽:平頂山 安康 那曲 山南 安徽 四川 濮陽(yáng) 浙江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql解決USE DB堵塞詳解》,本文關(guān)鍵詞  Mysql,解決,USE,堵塞,詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql解決USE DB堵塞詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Mysql解決USE DB堵塞詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产免费无遮挡吸奶头视频| 99久久精品国产成人一区二区| 天堂影院在线| 中文字幕视频网站| 日韩一区二区三区久久| 任我爽在线视频| 色老板在线观看| 中文字幕在线播放不卡| 日本韩国欧美三级| 久草视频免费在线| 久久国产免费| 成人av一区| 国产精品大片wwwwww| 亚洲国产激情av| 最新欧美人z0oozo0| 精品午夜久久| 精品欧美日韩一区二区| 日本精品久久电影| 在线免费日韩av| 色三级在线观看| 久久中文字幕二区| 一区二区三区国产好| 国产sm在线观看| 亚洲精品综合在线观看| 国产精品入口麻豆高清| 久热精品视频在线免费观看| 欧美一级在线看| 日韩精品―中文字幕| 欧美性感美女一区二区| 色哟哟一一国产精品| 国产欧美三级电影| 成人羞羞网站入口| 精品日本美女福利在线观看| 亚洲专区在线| 日韩欧美精品| 可以直接看的黄色网址| 少妇精品一区二区三区| 国产视频一区在线观看| 日韩av电影免费播放| 免费网站永久免费观看| 一本精品一区二区三区| 亚洲成色www久久网站| 亚洲欧美综合在线观看| 亚洲人成在线免费观看| 精品国产一区二区三| 91精品中文在线| 亚洲精品中文字幕在线播放| 日本中文字幕精品| 欧美亚洲福利| 国产精品97| 欧美电影一区二区三区| 欧美中文字幕一区二区| 国产综合精品| www.99riav| 国产精品久久久久久久久久直播| 一级全黄少妇性色生活片| 区一区二视频| 国内成人精品一区| 中文国产字幕在线观看| 黄色av一级片| 在线国产精品视频| av大片免费在线观看| 精品国产一区二区亚洲人成毛片| 国产日韩欧美在线看| 日韩精品一区二区亚洲av观看| 成人精品一区二区三区电影黑人| 丁香六月色婷婷| 老司机免费视频久久| 国产精品久久久久影院色老大| 在线亚洲人成电影网站色www| 尤物网站在线观看| aa视频在线免费观看| 免费看毛片的网站| 欧美重口乱码一区二区| 国产午夜亚洲精品不卡| heyzo亚洲| 一色桃子久久精品亚洲| 国产又色又爽又黄刺激在线视频| 嫩草在线视频| 国产 日韩 亚洲 欧美| 日韩小视频网址| 中文字幕亚洲欧美在线不卡| 本道综合精品| 在线播放日本| 老司机成人在线| 国产精品嫩草影院一区二区| 久久久九九九热| 国产91av在线| 日本高清+成人网在线观看| 北条麻妃一二三区| 日韩亚洲一区在线| 久久久免费看片| 欧美在线观看天堂一区二区三区| 国产日韩在线免费观看| 成年黄网站在线观看免费| 国产视频一区二区视频| 欧美色图久久| 国产污片在线观看| 欲色天天网综合久久| 国产精品久久久久久av福利软件| 久久av一区二区三| 一级黄色录像毛片| 亚洲女人被黑人巨大进入al| 国产精品日本一区二区三区在线| 91在线精品一区二区| 国产亚洲精品码| 亚洲精品永久视频| 亚洲图片自拍偷拍| 成人嫩草影院| 四季av日韩精品一区| 国产成人精品网址| 欧美日韩中文字幕一区二区| 亚洲欧美精品一区二区三区| 国产精品一区二区在线播放| 日本一道本久久| 粉嫩精品一区二区三区在线观看| 亚洲一区中文| 五月综合久久| 国产一区二区三区四区五区3d| 在线欧美一区| 蜜桃av久久久亚洲精品| 宅男深夜免费观看视频| 日韩精品电影在线观看| 在线视频你懂得一区| 伊人久久精品一区二区三区| 亚洲精品在线三区| 毛片av一区二区三区| 人人在线视频| 欧美手机在线观看| 国产精品系列在线播放| 精品一区免费观看| 国内精品久久久久久野外| 精品乱码一区二区三四区视频| 日本久久久久久久久久久| 美美女免费毛片| 亚洲人的天堂男人爽爽爽| 91麻豆一二三四在线| 欧美成人午夜免费视在线看片| 99riav视频| 日本人妻熟妇久久久久久| 国产在成人精品线拍偷自揄拍| 成人性生交大片免费观看嘿嘿视频| 国产福利一区在线| 亚洲性感美女99在线| 亚洲av激情无码专区在线播放| 亚洲成人日韩在线| eeuss影院www在线播放| 色狠狠av一区二区三区| aa级大片欧美三级| 欧美美女在线观看| 国产另类第一区| 国产又大又黄又爽| 网友自拍区视频精品| 久久黄色免费网站| 国产精成人品2018| 无码任你躁久久久久久老妇| 99热这里是精品| 99久久国产综合精品成人影院| 国产精品久久久久久av| 特级西西444www| 日本不卡视频一区| av一区观看| 久久久久久久国产精品视频| 国产精品一区二区午夜嘿嘿嘿小说| 中文乱码字幕av网站| 亚洲国产网址| 韩国理伦片久久电影网| 国产在线精品一区二区夜色| 亚洲网色网站| 在线播放91灌醉迷j高跟美女| 中文字幕视频网| 在线免费观看av影视天堂| 日日天天久久| 欧美成人官网二区| 欧美美乳视频网站在线观看| 在线免费色视频| 韩国三级中文字幕hd久久精品| 婷婷免费在线视频| 岛国av在线免费| 欧洲伦理片一区 二区 三区| 黄网在线播放| 亚洲素人在线| 国产伦精品一区二区三区免| 丰满岳乱妇一区二区| 国产精品情侣自拍| 青青草91久久久久久久久| 欧美日韩ab片| 国产xxx在线观看| 永久在线免费观看| 一级理论片在线观看| 91精品在线观| 国产中文字幕二区| 欧美一乱一性一交一视频| 日本成人a网站| 国产精品久久久久久久久搜平片| 玖玖玖精品中文字幕| 国产69精品久久久久久| 超黄网站在线观看| 亚洲视频日韩精品| 亚洲91网站| igao视频网在线视频| 亚洲丝袜在线视频| 亚洲综合欧美日韩| 警花av一区二区三区| 不卡大黄网站免费看| 亚洲精品黄色| 精品女人视频| 国产在线观看a| 国产传媒一区二区| 九九99玖玖| 欧美午夜女人视频在线| jizz亚洲大全| 精品国产一区二区三区久久狼5月| 天天综合色天天| h视频免费在线| 羞羞视频在线免费看| 国产精彩视频一区二区| 国产在线观看91精品一区| japanesexxxxfree在线观看| 国产精品第七影院| 天堂在线免费观看视频| 69视频在线观看| 一区二区三区www污污污网站| 欧美在线亚洲在线| 免费视频最近日韩| 久久精品一区中文字幕| 人妻内射一区二区在线视频| 99免费在线观看视频| 在线免费观看av网站| 国产精品久一| 亚洲人成在线影院| 精品视频9999| 国产中文精品久高清在线不| 久草免费在线| 欧美精品福利在线| 全部孕妇毛片丰满孕妇孕| 欧美日韩亚洲在线| 国模冰冰炮一区二区| 国产精品美女久久久久| 亚洲美女精品成人在线视频| 日韩免费av在线| 五月婷婷在线观看视频| 国产乱国产乱300精品| 午夜伦理在线| 国产成人手机高清在线观看网站| 国产精品熟女视频| 黄色小视频在线看| 日韩午夜精品电影| 福利一区二区在线| 成人国产一区| 136福利第一导航国产在线| 青柠在线免费观看| 91久久国产综合久久91精品网站| 人妻少妇一区二区三区| 日本在线小视频| 97超碰人人在线| 国产精品传媒入口麻豆| 精品国模一区二区三区欧美| 欧美一区二区三区在线观看| 九九爱在线视频观看免费视频| 欧美大黑bbbbbbbbb在线| 精品一区二区在线观看视频| 国产亚洲精品熟女国产成人| 免费日韩成人| 午夜在线视频| 国产精品99久久久久久www| 中日韩精品视频在线观看| www.狠狠插| 国内自拍九色| av福利导福航大全在线播放| 91吃瓜在线观看| 中国在线观看免费国语版电影| 在线播放av网址| 国产一级影片| 国产精品旅馆在线| 亚洲天堂激情| 在线电影中文字幕| 手机福利在线视频| 天堂av一区二区三区| 国产91色在线观看| 免费看一级黄色| 国产成人精品久久二区二区| 欧美视频在线一区二区三区| 国产精品suv一区二区| 在线日韩av永久免费观看| 在线视频99| 在线亚洲天堂| 538在线一区二区精品国产| 欧美日韩国产91| 中文字幕av中文字幕| 国产日产欧美一区二区视频| 日本少妇一区二区三区| 国产精品videosex极品| 国际精品欧美精品| 国产精品18久久久久久久久| 成人伦理视频网站| 亚洲精品视频一二三| 在线观看国产精品91| 精品视频导航| 欧美男男激情videos| 亚洲熟女毛茸茸| 亚洲一区二区三区高清视频| 26uuu日韩精品一区二区| 国产伦理片在线观看| 日本丰满少妇裸体自慰| 桥本有菜av在线| 亚洲欧美日韩中文播放| 无码国精品一区二区免费蜜桃| 视频一区欧美精品| 日韩黄色在线免费观看| 91一区二区在线观看| 久久电影国产免费久久电影| 欧美激情综合| 亚洲天堂av图片| 欧美丰满熟妇bbbbbb百度| 国产成人一级电影| 无码精品视频一区二区三区| 激情六月婷婷久久| 九色综合国产一区二区三区| 欧美精品欧美精品系列| 精品樱空桃一区二区三区| 国产+成+人+亚洲欧洲| 国产精品国产三级国产aⅴ浪潮| 国产视频手机在线播放| 图片小说视频色综合| 中文字幕国产精品| 99久久久无码国产精品免费| 久久久精品免费|