为什么选择...用于UPDATE锁定插入?

时间:2014-09-01 03:51:37

标签: mysql locks

我正在运行如下所示的交易:

BEGIN()
SELECT * FROM mytable LIMIT 1
COMMIT()

问题在于,如果我尝试同时在mytable中插入新数据,则需要的时间比通常要长,因此我假设事务锁定mytable以进行插入。这可能吗?

MySQL服务器引擎是InnoDB,最新版本

1 个答案:

答案 0 :(得分:0)

尝试将其添加到查询的顶部:

SET TRANSACTION ISOLATION LEVEL READ COMMITTED

默认情况下,它允许查询尝试读取当前插入到表中的数据,从而导致死锁。

使用此标志时,它只会在您开始运行查询时设置表中已有的值。