我在生产mysql db上运行了analyze table命令,却不知道它会阻止我选择表的内容。这导致生产站点出现故障:(锁定释放需要多长时间?另外,从备份中重新创建数据库可以解决问题/摆脱锁定?
请告诉我。
谢谢。
ANALYZE TABLE非常清楚地说'在分析过程中,表被锁定了InnoDB和MyISAM的读锁'。
您可以在SQL中使用KILL {connection number}
来停止命令。
注意:您可能应该更新到更新版本的MySQL-5.6。
ANALYZE TABLE等待获取元数据锁。在等待时,对表的任何SQL查询都会等待ANALYZE TABLE。
ANALYZE TABLE通常非常快,即1-3秒。但是,只有获得元数据锁定才能开始快速操作。
当您对表进行长时间运行的事务时,它无法获取元数据锁。因此,如果您希望它运行得更快,请完成您的交易。
有关更多信息,请参阅我对MySQL failing to ALTER TABLE which is being actively written to的回答。