Lockmode PESSIMISTIC_WRITE标准与选择更新

时间:2017-04-28 10:38:02

标签: mysql hibernate innodb hibernate-criteria readwritelock

在休眠标准中使用PESSIMISTIC_WRITE作为LockMode作为Select for update query的替代方法,性能是否有任何显着差异。

用例涉及以下几点:

  1. 限制多个列中的值,例如状态,时间
  2. 对多列进行排序
  3. 仅选择第一行进行处理。
  4. 此处理由多台机器/线程同时完成。 我目前正在使用hibernate标准,这导致多次锁定超时,导致所有其他查询窒息。

1 个答案:

答案 0 :(得分:0)

在这种情况下,FOR UPDATE是"必需"为了正确的并发:

BEGIN;
SELECT x ... FROM t ... FOR UPDATE;
use `x` for whatever
UPDATE t ...;
COMMIT;

如果没有FOR UPDATEx的值可能会发生变化,从而可能使UPDATE的意图无效。