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.cnblogs.com/cuisi/p/7765156.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值