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进程,索引添加立刻完成

文章来源地址https://www.yii666.com/article/756235.html文章地址https://www.yii666.com/article/756235.html网址:yii666.com<网址:yii666.com文章来源地址:https://www.yii666.com/article/756235.html

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png