mysqlの最適化 - mysql innodbテーブルロックの問題
淡淡烟草味
淡淡烟草味 2017-05-24 11:32:59
0
2
667

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

淡淡烟草味
淡淡烟草味

全員に返信(2)
曾经蜡笔没有小新

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

いいねを押す +0
習慣沉默

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

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート