何者にもなれていない5年目のエンジニアブログ

insert_ignoreは失敗すると共有ロックが起こる。

insert_ignoreは失敗すると共有ロックが起こるので、その後更新するために、select for updateなどをかけて排他ロック取りにいくような処理にしていると、同じことをしようとした人がいた場合、お互いの共有ロック解除待ちとなるので、デッドロックが発生します。

なので、insert失敗後更新系の処理は、排他ロックがかかるinsert into ~~ on duplicate key updateを使います。