【问题标题】:Locking database while running the SQL patches for tables在运行表的 SQL 补丁时锁定数据库
【发布时间】:2020-06-04 13:05:21
【问题描述】:

在应用程序中,我们使用的是 MySql 5.6、PHP 7,并且我们在执行用 PhP 脚本编写的 SQL 补丁时锁定了整个目标数据库。 Patched 不断增加,例如添加新表或修改现有表。

在此锁定期间,没有客户可以登录应用程序。最近需求发生了变化,我们需要锁定数据库,只有“ALTER TABLE”命令出现在新的 SQL 补丁中。

我想知道,在什么情况下数据库应该在执行 SQL 补丁时被锁定。例如,截至目前,我认为应该为“ALTER”和“RENAME”SQL 命令锁定数据库。

大家有什么建议吗?

【问题讨论】:

    标签: php mysql sql database-design locking


    【解决方案1】:

    不要使用 MyISAM,使用 InnoDB。避免使用ALTER,或证明其使用是合理的。一般来说,架构应该很少被修改。

    另外,如果您升级到 MySQL 8.0,更多的 ALTERs 是非阻塞的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-14
      • 2015-08-31
      • 2014-09-01
      • 1970-01-01
      • 2021-06-25
      • 2023-03-18
      • 1970-01-01
      • 2021-09-03
      相关资源
      最近更新 更多