我在生产mysql数据库上运行analyze table命令,却不知道它会阻止我选择表的内容。这导致生产现场停工:(锁需要多长时间才能释放?另外,从备份中重新创建db是否可以解决问题/消除锁?请告诉我。谢谢。
brccelvz1#
分析表等待获取元数据锁。在等待过程中,任何针对表的sql查询都会等待analyze table。分析表通常非常快,即1-3秒。但是,在获取元数据锁之前,这种快速操作不会启动。当您有针对表的长时间运行的事务时,它无法获取元数据锁。因此,如果您想让它运行得更快,请完成您的事务。有关更多信息,请参阅我对mysql未能更改正在被主动写入的表的回答。
x7rlezfr2#
analyze table非常清楚地说“在分析过程中,表被innodb和myisam的读锁锁定”。你可以 KILL {connection number} 在sql中停止命令。注意:您可能应该更新到mysql-5.6的最新版本。
KILL {connection number}
2条答案
按热度按时间brccelvz1#
分析表等待获取元数据锁。在等待过程中,任何针对表的sql查询都会等待analyze table。
分析表通常非常快,即1-3秒。但是,在获取元数据锁之前,这种快速操作不会启动。
当您有针对表的长时间运行的事务时,它无法获取元数据锁。因此,如果您想让它运行得更快,请完成您的事务。
有关更多信息,请参阅我对mysql未能更改正在被主动写入的表的回答。
x7rlezfr2#
analyze table非常清楚地说“在分析过程中,表被innodb和myisam的读锁锁定”。
你可以
KILL {connection number}
在sql中停止命令。注意:您可能应该更新到mysql-5.6的最新版本。