1

在休眠条件中使用 PESSIMISTIC_WRITE 作为 LockMode 作为 Select for update 查询的替代方案在性能上是否存在显着差异。

用例涉及以下几点:

  1. 对状态、时间等多列中的值的限制
  2. 在多列上排序
  3. 仅选择第一行进行处理。

该处理由多个机器/线程同时完成。我目前正在使用休眠条件,这会导致多次锁定超时,从而导致所有其他查询阻塞。

4

1 回答 1

0

在这种情况下,FOR UPDATE正确的并发是“必需的”:

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

如果没有FOR UPDATE, 的值x可能会改变,从而可能使 . 的意图无效UPDATE

于 2017-04-30T19:16:52.120 回答