質問: 1 ``` 現象: lock wait timeout exceeded try restarting transaction エラーは消えたものの DEAD LOCKのエラーが出てます。(DEAD LOCKは発生してるものの自然復旧されてます。) 具体的な事象としてはAという行にDead Lockが発生しても他の人がA行にアクセスできないことはなくなりました。 何かヒントになることありましたら教えていただければ助かります。
回答: COMMITが抜けてませんか?COMMITしていないセッションがあると、行ロックをずーっと保持したままになります。そうすると、保持しているセッション以外はロック待ちになって、タイムアウト時間まで待ちます。 innodb_lock_wait_timeout を1ではなく、逆に長い値にして、Lock 待ちになっている時に、 SHOW ENGINE INNODB STATUS で、ロックの情報を表示させ、誰が行ロックを保持しているかを 調査すべきです。