【MySQL】ネクストキーロックについて

2021.12.05

記事画像
みなさん、こんにちは エンジニアの高橋です。 本日はMySQLのネクストキーロックについてお話したいと思います。 ネクストキーロックとは、実レコードが存在しないインデックスの隙間(ギャップ)をロックし、さらに指定範囲を超えた直近の実レコードもロックされることを指します。 下記のテーブルを例に説明すると pkey, value 10, 10 20, 20 30, 30 ① "where pkey > 16 and pkey <= 19"の場合 11〜19にギャップロックが発生するのですが、実レコードの20にもロックがかかってしまいます。 ② "where where pkey > 16 and pkey <= 20"の境界に実レコードが存在する場合 11〜19にギャップロックが発生し、実レコードの20にもロックがかかり、さらに21〜29にギャップロックがかかり30にもロックがかかります。 自分の想定以上のレコードにロックがかかってしまいますので、queryを作成する際には気をつけてください。
--------------------------------------------------
社員を募集しております!

会社の説明とか、会社の良いところとか、社員の紹介とか
株式会社フジボウルの動画

採用担当のXアカウント
鹿島潤@フジボウルの採用兼エンジニア

社員のゲーム実況チャンネル
$fugaのゲーム実況

この記事を書いた人

高橋 希望

入社10年目の元不動産営業、現ゲームエンジニア 得意言語はphp,javascript,python,elixirなど

DiscordID:n_takahashi0501 Email:n_takahashi@fujiball.co.jp

あなたが気になっていることを
担当者に伝えます。

ご連絡ありがとうございました。
後日担当者から返信をします。