タイプ: integer
デフォルト: 1000 (1s)
分: 1 (1ms)
最大: 2147483647 (2147483647ms)
単位: milliseconds (ms)
コンテキスト: superuser
再起動: false

これは、デッドロック状態があるかどうかを調べる前にロックを待つ時間です。デッドロックの検査は比較的高価なので、サーバはロックを待つ度にこれを実行するわけではありません。楽天的ですがデッドロックは実用レベルのアプリケーションでは頻繁に発生しないと仮定し、デッドロックの検査の前にしばらくはロック待ちをします。この値を増やすことにより必要のないデッドロックの検査で無駄にされる時間は減りますが、本当にデッドロックがあった場合の報告が遅れます。この値が単位なしで指定された場合は、ミリ秒単位であるとみなします。デフォルトは1秒(1s)で、おそらく実用の際にはこれ以上は必要でしょう。負荷の大きいサーバではもっと必要かもしれません。理想としてはこの設定は通常のトランザクションにかかる時間を超えているべきです。そうすればロック待ちトランザクションがデッドロックの検査をする前にロックが解除される可能性が改善されます。スーパーユーザのみこの設定を変更できます。

log_lock_waitsが設定された場合、このパラメータはロック待機に関するログメッセージを出力する前の待機時間を決定します。ロック遅延の調査を行う場合は、通常のdeadlock_timeoutよりも短い値を設定することを勧めます。

推奨事項 [EN]

Default is fine, except when you are troubleshooting/monitoring locks. In that case, you may want to lower it to as little as 50ms.

件のコメント