ホームページ  >  に質問  >  本文

mysqlの最適化 - mysql innodbテーブルロックの問題

テストの結果、次の状況でテーブル ロックが発生することがわかりました。
1.like
2.更新、無条件削除操作
3.update、delete は条件付き操作ですが、主キー操作ではありません
Select は、条件付きか無条件か、条件が主キーかインデックスかに関係なく、テーブルをロックしません。これは正しいです?私のテストに何か問題がありますか?

淡淡烟草味淡淡烟草味2704日前621

全員に返信(2)返信します

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-24 11:34:59

    select では、select ... FOR UPDATE など、共有ロック、排他ロックなど、さまざまなレベルのロックを指定できます。
    ロックが必要な理由については、簡単な例を示します。たとえば、前のドキュメントを継承するドキュメントがある場合、読み取りロックを追加して前のドキュメントをロックし、他の人が前のドキュメントを変更できないようにすることができます。送信する前に変更すると、データの不整合が発生します。

    返事
    0
  • 習慣沉默

    習慣沉默2017-05-24 11:34:59

    条件に主キーが含まれないか、主キーは含まれていても等号または IN ではない限り、テーブル全体がロックされます。これには、質問内の 3 つの状況がすべて含まれます。

    テーブル全体をロックするか、いくつかの行をロックするかにかかわらず、選択は読み取りロックを追加し、更新と削除は書き込みロックを追加します。読み取りロックと書き込みロックが何であるかについては、Googleで検索できます。詳細については、トランザクション分離レベルも確認できますが、ここでは説明しません。

    返事
    0
  • キャンセル返事