序文しばらく前にMysqlのデッドロック問題に遭遇したので、解決しました。 問題の説明: Mysql の変更ステートメントが有効にならないようで、Mysql GUI ツールを使用してフィールドの値を編集すると例外がポップアップ表示されます。 デッドロックとは何ですか?MySQL のデッドロック問題を解決する前に、まずデッドロックとは何かを理解しましょう。 デッドロックとは、実行中にリソースの競合により、2 つ以上のプロセスが互いに待機する現象を指します。外部からの力がなければ、先に進めなくなります。このとき、システムはデッドロック状態にある、またはシステムがデッドロックを起こしていると言われます。このように常に互いを待機しているプロセスをデッドロック プロセスと呼びます。 デッドロックの兆候デッドロックには、次の 2 つの具体的な現れ方があります。 Mysql の追加および変更ステートメントが正しく機能しません。Mysql GUI ツールを使用してフィールドの値を編集すると、例外が発生します。 デッドロックを回避する方法 デッドロックを防ぐ方法は、デッドロック条件が満たされる状況を避けることです。そのためには、開発プロセス中に次の原則に従う必要があります。 1. データの変更を伴うステートメントの同時実行を避けてください。 2. 各トランザクションは、一度に使用されるすべてのデータをロックする必要があります。そうしないと、実行が許可されません。 3. ロック順序が事前に指定されており、すべてのトランザクションはこの順序でデータをロックする必要があります。たとえば、トランザクション内で異なるプロセスがオブジェクトを更新する順序は、可能な限り一貫性を保つ必要があります。 デッドロックを表示MySQL でロックされたテーブルがあるかどうかを照会する方法は多数あります。ここでは、最も一般的に使用される方法のみを紹介します。 1. 進行中の取引を表示する 情報スキーマ.INNODB_TRXから*を選択します プロセス ID 3175 のトランザクションがロックされており、ID 3173 の別のトランザクションが実行中だがコミットされていないことがわかります。 2. ロックされたトランザクションを表示する INFORMATION_SCHEMA.INNODB_LOCKS から * を選択します。 3. ロックを待機しているトランザクションを表示する INFORMATION_SCHEMA.INNODB_LOCK_WAITS から * を選択します。 4. テーブルがロックされているかどうかを確認する In_use > 0 の場合に開いているテーブルを表示します。 デッドロックが発生すると、これらのメソッドは現在のデッドロックに関連する情報を照会できます。 5. 最近のデッドロックのログを表示する エンジンの InnoDB ステータスを表示 デッドロックの解決デッドロックを解決する必要がある場合、プロセス ID を見つけて直接強制終了するという単純かつ強力な方法があります。 現在進行中のプロセスを表示する プロセスリストを表示 // SELECT * FROM information_schema.INNODB_TRX; を使用することもできます。 これら 2 つのコマンドによって検出されたプロセス ID は同じです。 プロセスに対応するプロセスIDを強制終了します キルID 検証(強制終了後にロックが残っているかどうかを確認) In_use > 0 の場合に開いているテーブルを表示します。 参考リンク Mysql テーブルの表示とテーブルのロック解除 MySQL デッドロックとは何ですか? これで、MySQL のデッドロック チェックとデッドロック除去に関するこの記事は終了です。MySQL のデッドロック チェックとデッドロック除去の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: HTML における水平および垂直の中央揃え方法の詳細な説明 (基礎)
テーブル名を変更したり、テーブル フィールドを変更したりする必要がある場合は、 MySQL ALTE...
目次考える1. 貪欲な蛇の効果画像2. スネークの分析2.1 ゲーム開始機能2.2 運動機能2.2....
目次クエリの背景1. クエリをいいね2. JSON関数クエリ3. 共同インデックスクエリ4. 全文イ...
nginx をリバース プロキシ tomcat として使用する場合、セッション損失が発生する可能性が...
1. ショートカットCtrl + Shift + Pを使用してコンソールを呼び出します 2、「スニペ...
Ubuntu 16.04 FTP サーバーをビルドするftpをインストールするftp をインストール...
Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...
この記事では、MySQL インデックス カバレッジについて例を挙げて説明します。ご参考までに、詳細は...
目次01 YAMLファイルの概要YAML---キー値型YAML---リスト型02 K8Sにおけるマス...
はじめに: すべてのブラウザには、「ユーザー エージェント スタイル シート」と呼ばれる、すべてのペ...
HTML メールを送信するためのヒント: スタイルを使用してインライン CSS を記述する、使用する...
テキストシャドウの紹介CSSでは、 text-shadowプロパティを使用してテキストの影を設定しま...
目次1. Windows システムでの Nginx のインストールと起動プロセス: 2. 起動時にN...
目次1. 基本2. ノード、ツリー、仮想DOM 1. 仮想DOM 3. createElementパ...
ページの DIV+CSS レイアウトを行う際、IE6 で画像要素 img の下に余分なスペースができ...