mysqlのデッドロックを解決するにはどうすればよいですか?

青灯夜游
リリース: 2020-09-18 09:13:17
オリジナル
12226 人が閲覧しました

Mysql デッドロック解決策: 1. タイムアウトになるまで待機し (innodb_lock_wait_timeout=50s)、トランザクションを自動的にロールバックします; 2. デッドロック検出を開始し、トランザクションをアクティブにロールバックし、他のトランザクションの実行を継続します (innodb_deadlock_detect=on) )。

mysqlのデッドロックを解決するにはどうすればよいですか?

MySQL には 2 つのデッドロック処理メソッドがあります:

● タイムアウトになるまで待機 (innodb_lock_wait_timeout=50s)、トランザクションを自動的にロールバック。

# デッドロック検出を開始し、トランザクションを積極的にロールバックして、他のトランザクションの実行を継続できるようにします (innodb_deadlock_detect=on)。

パフォーマンス上の理由から、デッドロックの処理には通常、デッドロック検出が使用されます。

デッドロック検出

デッドロック検出の原理は、トランザクションを頂点、ロックを辺とする有向グラフを構築し、有向グラフにサイクルがあるかどうかを判断することです。サイクルではデッドロックが発生します。

ロールバック

デッドロックを検出した後、INFORMATION_SCHEMA.INNODB_TRX テーブルの trx_weight フィールドに基づいて、ロールバックする挿入、更新、または削除された行の数が最も少ないトランザクションを選択します。

以上がmysqlのデッドロックを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート