自分の浅はかな理解だと、Deadlock が起こる理由が説明できないケースに遭遇したので、InnoDB の行レベルロックについて調べてまとめてみました。 「行レベルロックだと、同じ行を更新する場合にしか Deadlock が起こらないんでしょ」と思っているような人が対象です。 また、主に InnoDBのロックの範囲とネクストキーロックの話 - かみぽわーる を参考にさせていただいたので、そちらの内容がすんなり理解できる方には冗長な内容だと思います。 MySQL のバージョンは 5.6.33 です。 サンプルデータ 次の SQL で作成したデータを扱うことにします。 CREATE TABLE `orders` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `product_id` int(10) unsigned NOT NULL, `us
![InnoDB の行レベルロックについて解説してみる](https://cdn-ak-scissors.b.st-hatena.com/image/square/e4ae451b6eb68f86e6395ff31c162da99986ea8f/height=288;version=1;width=512/https%3A%2F%2Fabicky.net%2Fassets%2Flogo-ecc7933ebcc8ad52763d7bdcc07df22f9534054dd930e28b01860043de7ca6ce70b47c3b5c250c3a275c3d6f107fad47a0b67347b1e199de9a2f603fa32d95aa.png)