继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

幕布斯7119047
关注TA
已关注
手记 432
粉丝 28
获赞 99

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

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

show processlist;

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

    kill 线程ID

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

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP