mysql5.6創建索引導致鎖表阻塞查詢


結論:添加索引時,如果有對該表的慢查詢,會導致索引添加延時等待
 
添加索引語句:alter table tb_name add index idx_xx(col_name);
 
執行添加索引的SQL:
通過show processlist; 發現有鎖表等待的線程:
| 1205189 | root            | localhost             | erp  | Query   |    50 | Waiting for table metadata lock                                             | ALTER TABLE `erp_ekpo` ADD INDEX indx(aedat)                                
 
正常情況:添加索引只需要幾秒鍾 就完成,此時等待很久都沒有結束。
MySQL5.6是支持在線的DDL,對表進行alter table時是不會鎖表的。
 
原因: 通過命令查看慢查詢:
select * from information_schema.processlist where command not in ('Sleep')  and user not in ('mydba','event_scheduler','repl','binlogbak','system user')
發現有慢SQL,針對該表。
 
解決方式:kill掉慢SQL進程,索引添加立刻完成


免責聲明!

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



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