【问题标题】:MYSQL how to ensure that one query is ran right after anotherMYSQL如何确保一个查询在另一个之后运行
【发布时间】:2011-08-19 11:36:57
【问题描述】:

并发连接有问题。我如何确保一个查询一个接一个地运行,而中间没有来自另一个连接的查询。我可能需要某种锁定,但是是什么样的呢? ..或者?交易?

【问题讨论】:

  • 您能解释一下为什么您实际上需要关闭与数据库的所有其他连接吗?
  • 您能提供您的查询示例吗?

标签: mysql concurrency transactions locking


【解决方案1】:

SERIALIZABLE 隔离级别运行 2 个查询 - 它通过锁定它们访问的每条记录来保证 2 个查询的结果与执行的唯一 2 个查询完全相同,但没有锁定其余的表/表。

【讨论】:

    【解决方案2】:

    如果你使用innodb存储引擎,你可以使用事务来实现你想要的。只需在两个查询之前执行 BEGIN 并在它们之后执行 COMMIT。

    【讨论】:

    【解决方案3】:

    您可以使用LOCK TABLE 来阻止其他用户更新该表。

    链接
    http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

    【讨论】:

      猜你喜欢
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多