這篇文章主要介紹“添加索引過(guò)程中出現waiting for table metadata lock怎么辦”,在日常操作中,相信很多人在MySQL添加索引過(guò)程中出現waiting for table metadata lock怎么辦問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對大家解答”MySQL添加索引過(guò)程中出現waiting for table metadata lock怎么辦”的疑惑有所幫助!接下來(lái),請跟著(zhù)小編一起來(lái)學(xué)習吧!
今天抽時(shí)間把前段時(shí)間出現的故障進(jìn)行梳理。
對某生產(chǎn)庫相關(guān)表加索引
alter table user_address add index idx_create_time(create_time);
主庫正常添加完畢,觀(guān)察到從庫出現較高的延遲,show processlist查看各個(gè)線(xiàn)程狀態(tài),發(fā)現出現大批量的Waiting for table metadata lock
由于是第一次遇到,所以上網(wǎng)查metadata lock(MDL)的相關(guān)信息。
select * from information_schema.innodb_trx\G
看到有個(gè)對user_address表的訪(fǎng)問(wèn)一直沒(méi)有結束
根據經(jīng)驗判斷這是一個(gè)異常的SQL,于是kill掉這個(gè)線(xiàn)程
然后show processlist:
Waiting for table metadata lock全部消失,并且show slave status \G延遲逐漸降低并消失。
經(jīng)查閱資料:
1)MySQL5.6之后的版本支持online DDL,創(chuàng )建索引本身不會(huì )對表的增刪改查造成影響,但是由于獲取不到MDL(元數據鎖),從庫進(jìn)行索引創(chuàng )建的session就會(huì )一直處于Waiting for table metadata lock狀態(tài),導致后續對此表的訪(fǎng)問(wèn)造成影響。
2)后期操作alter table,可以通過(guò)提前檢查information_schema.innodb_trx的事務(wù)提交情況,以避免此類(lèi)情況發(fā)生。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站