手记

mysql添加索引导致表锁死,几步轻松解决

    很多程序员同学在工作中可能都会碰到,在给一张有几万条记录的表添加索引时,进度非常慢,导致表锁死,今天就给大家说一说处理方式:

    使用Navicat的命令行模式,执行以下命令:

show processlist;

    这时会看到有哪些线程正在执行,也可以查看锁表的线程。你会发现alter table * add key ****那个线程状态是Waiting for table metadata lock,后面有个这个表的所有操作都是这个状态,很明显是这条加索引的语句把表给锁了。查看线程ID,执行

    kill 线程ID

这样被锁住的表就能立即被使用了。

    由此得出一个结论,当一张表数据量很大时,不要轻易添加索引,会导致表被锁死!如果非要添加,那么应该先把数据表进行备份,然后进行空表添加索引。


0人推荐
随时随地看视频
慕课网APP