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