• 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进程,索引添加立刻完成
  • 相关阅读:
    display:inline、block、inline-block的区别
    CSS选择器优先级总结
    bootstarp模板01
    Vue深度学习(6)- 组件
    在Ubuntu下安装mongodb
    Ajax高级应用---Comet
    ubuntu安装
    linux使用
    跨浏览器的CORS
    防止伪造跨站请求
  • 原文地址:https://www.cnblogs.com/cuisi/p/7765156.html
Copyright © 2020-2023  润新知