【MySQL】ネクストキーロックについて
記事画像
みなさん、こんにちは エンジニアの高橋です。 本日は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を作成する際には気をつけてください。

--------------------------------------------------
社員を募集しております!

リクナビNEXT
《前職給与保障★エンジニア還元率80%以上》プログラマ・SE

type
開発エンジニア◆前職給与保証◆月給35万円~◆年休128日◆原則残業なし◆toC/Web系案件多数◆Web面接1回可

社員のゲーム実況チャンネル
$fugaのゲーム実況
この記事を書いた人
投稿者画像
高橋 希望
入社10年目の元不動産営業、現ゲームエンジニア 得意言語はphp,javascript,python,elixirなど
関連する記事