エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
同じSELECT文同士でのデッドロックが発生
>2つの処理がロックしてしまう、というように聞こえますが >こういうことはあるんでしょうか? ある... >2つの処理がロックしてしまう、というように聞こえますが >こういうことはあるんでしょうか? あるんです。Aのプロセスも、Bのプロセスも「誰もロックしてない」って思ってますから。 Aがロックを掛けた直後に、Bは「さっき調べた時は誰もロックしてなかったから、ロックしよう」と「上書きロック」をしてしまいます。 通常は1と3の間に2が割り込まず、2が後回しになる為、以下のようにAもBも正常終了します。 1.Aがレコードのロック状態を検査。ロック無しと判定 3.Aがレコードをロック 2.Bがレコードのロック状態を検査。ロック有りと判定 4.Bはレコードのロックが解除されるまで待ち合わせ (以下略) デットロックの直接の原因は「間に割り込みが入らず一連の動作として処理しなければならない、ロック状態の検査とロック設定の間に、別プロセスが割り込むため」です。 こういうケースは、データベースがサーバー上に