3

この質問は、これの論理的な続きです。

SELECT ... ORDER BY xxx LIMIT 1 FOR UPDATEによってロックされる行数はいくつですか?

私がそのようなSELECTを持っているとしましょう:

SELECT id, status FROM job WHERE status = XXX AND id IN (1, 2, 3) FOR UPDATE

idは主キーで、ステータスはインデックスに登録されます。

この場合のMySQLロック戦略は何ですか?

  1. 両方の条件にのみ一致する行をロックする
  2. 最初の条件に一致するすべての行をロックし、2番目の条件に一致するすべての行を個別にロックします
  3. テーブル全体をロックする

最も論理的なのは2だと思います。しかし...わかりません。詳細を教えていただけますか?

4

1 に答える 1

1

さて、私はテストを行いました、そして彼らはオプション1がこの場合有効であることを示します。

両方の条件にのみ一致する行をロックする

于 2011-04-22T17:44:54.260 に答える