zoukankan      html  css  js  c++  java
  • 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进程,索引添加立刻完成
  • 相关阅读:
    全国城市经纬度
    CentOS下SSH无密码登录的配置
    Nginx 1.9+PHP5.6 环境搭建
    Sphinx 2.2.11-release reference manual
    JVM 内存管理机制
    solr 3.5.0 与 tomcat 7.0.5 整合配置
    lucene 分词实现
    lucene 索引 demo
    lucene 搜索demo
    Lucene 简单API使用
  • 原文地址:https://www.cnblogs.com/cuisi/p/7765156.html
Copyright © 2011-2022 走看看