【问题标题】:MYSQL 5.6.10 ANALYZE TABLE lock issueMYSQL 5.6.10 ANALYZE TABLE 锁定问题
【发布时间】:2018-09-16 23:39:02
【问题描述】:

我在生产 mysql db 上运行了分析表命令,却不知道它会阻止我选择表的内容。这导致生产站点宕机:(释放锁需要多长时间?另外,从备份中重新创建数据库会解决问题/摆脱锁吗?

请告诉我。

谢谢。

【问题讨论】:

    标签: mysql sql database mysql-5.6 table-locking


    【解决方案1】:

    ANALYZE TABLE 等待获取元数据锁。在等待期间,针对该表的任何 SQL 查询都会等待 ANALYZE TABLE。

    ANALYZE TABLE 通常很快,即 1-3 秒。但该快速操作在获取元数据锁之前不会开始

    当您对表进行长时间运行的事务时,它无法获取元数据锁。因此,如果您希望它运行得更快,请完成您的交易。

    请参阅我对MySQL failing to ALTER TABLE which is being actively written to 的回复了解更多信息。

    【讨论】:

      【解决方案2】:

      ANALYZE TABLE 很清楚地说“在分析过程中,表被 InnoDB 和 MyISAM 的读锁锁定”。

      您可以在 SQL 中通过KILL {connection number} 来停止该命令。

      注意:您可能应该更新到 MySQL-5.6 的更新版本。

      【讨论】:

      • 我这样做了,但它继续创建更多进程。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-20
      • 1970-01-01
      • 1970-01-01
      • 2018-05-28
      相关资源
      最近更新 更多