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