嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2015-01-10 3670 次浏览 标签 : Mysql

免费领取阿里云优惠券 我的直播 - 《PHP 进阶之路》

由于修改一个表花的时间太长,导致中途断开连接了,出现

ERROR 2013 (HY000): Lost connection to MySQL server during query

而通过

show processlist;

来查看,发现被修改的表还是出于被锁定的状态State: Waiting for table metadata lock。在这个时候我有三个想知道的事:

第一、我执行alter的客户端断开连接之后,那条SQL是否还在执行,如果没有执行,为什么表还是处于锁定状态。经过焦虑的等待,因为阻塞等待执行的SQL越来越多,我也越来越紧张,最后发现队列消失,查看表结构也修改OK,得知在断开连接之后,那条SQL还是继续正常执行了的。不过在该条SQL正在执行的时候,我是否可以查询到它是否正在执行呢?通过show processlist似乎不能过滤查询自己想查询的SQL的执行情况,也不能分页,如何查找那条SQL的执行情况呢?(这个问题已经解决

第二、执行完毕之后,怎么知道我的表有没有改出问题呢?

第三、修改表结构的时候有没有查看完成进度的方法或者插件。

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表