mysql添加索引导致表锁死解决方式

本人遇到的问题再现:本人给一张有几百万条数据的表添加索引,进度非常慢,导致其它查询无法进行!!!

处理方式:
使用Navicat的命令行模式,执行以下命令:show processlist;

查询出结果会看到有哪些线程正在执行,也可以查看锁表的线程。你会发现SELECT * FROM `***`那个线程状态(State)是Waiting for table metadata lock,后面有个这个表的所有操作都是这个状态,很明显是这条加索引的语句把表给锁了。

查看线程ID,执行:

         kill 线程Id

KILL命令用于终止正在运行的数据库连接。这个命令可以用来终止与MySQL服务器上的特定连接相关的线程。

 补充内容:

在MySQL中,KILL命令用于终止正在运行的数据库连接。这个命令可以用来终止与MySQL服务器上的特定连接相关的线程。

当您执行KILL command时,您需要指定要终止的线程ID。您可以使用KILL QUERY thread_id来终止特定连接当前正在执行的语句,而不会断开连接。如果连接上有多个查询,这些查询不会受到影响。

另外,如果您拥有PROCESS权限,则可以查看所有线程。如果您拥有SUPER权限,则可以终止所有线程和语句。否则,您只能查看和终止您自己的线程和语句。

请注意,当您使用KILL命令终止一个连接时,这个连接上的所有未提交的事务都将被回滚,而已经提交的事务将不受影响。

此外,还可以使用mysqladmin processlist和mysqladmin kill命令来检查和终止线程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值