【发布时间】:2011-08-19 11:36:57
【问题描述】:
并发连接有问题。我如何确保一个查询一个接一个地运行,而中间没有来自另一个连接的查询。我可能需要某种锁定,但是是什么样的呢? ..或者?交易?
【问题讨论】:
-
您能解释一下为什么您实际上需要关闭与数据库的所有其他连接吗?
-
您能提供您的查询示例吗?
标签: mysql concurrency transactions locking
并发连接有问题。我如何确保一个查询一个接一个地运行,而中间没有来自另一个连接的查询。我可能需要某种锁定,但是是什么样的呢? ..或者?交易?
【问题讨论】:
标签: mysql concurrency transactions locking
以 SERIALIZABLE 隔离级别运行 2 个查询 - 它通过锁定它们访问的每条记录来保证 2 个查询的结果与执行的唯一 2 个查询完全相同,但没有锁定其余的表/表。
【讨论】:
如果你使用innodb存储引擎,你可以使用事务来实现你想要的。只需在两个查询之前执行 BEGIN 并在它们之后执行 COMMIT。
【讨论】:
您可以使用LOCK TABLE 来阻止其他用户更新该表。
【讨论】: