Deadlocks
High Performance MySQL
複数のTransactionsがお互いに同じリソースのロックを要求することで依存性のサイクルを作っている状態
リソースのロックを異なる順序で要求するときに起きる
対策
Deadlock detection
timeout
InnoDBは循環依存を検知してすぐにエラーを返す
lock wait timeoutでエラーになったりする
よくない時もある
本当に避けられないデッドロックと、ストレージエンジン依存で発生するデッドロックがある
発生したらトランザクションをロールバックせざるを得ず、それはアプリケーションで対応する必要がある