mysql添加索引導致表鎖死


場景:在給一張有幾萬條記錄的表添加索引時,進度非常慢,導致其它查詢無法進行

處理方式:
使用Navicat的命令行模式,執行以下命令:

show processlist; 

這時會看到有哪些線程正在執行,也可以查看鎖表的線程。你會發現alter table * add key ****那個線程狀態是Waiting for table metadata lock,后面有個這個表的所有操作都是這個狀態,很明顯是這條加索引的語句把表給鎖了。
查看線程ID,執行

kill 線程ID 

這樣被鎖住的表就能立即被使用了。

由此得出一個結論,當一張表數據量很大時,不要輕易添加索引,會導致表被鎖死!如果非要添加,那么應該先把數據表進行備份,然后進行空表添加索引。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM