序文しばらく前に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 における水平および垂直の中央揃え方法の詳細な説明 (基礎)
序文日常の仕事や勉強では、データベースを操作するときに「不注意」によるミスを犯すことは避けられません...
プロジェクト内のページの長さはおよそ2000px以上あり、背景画像にはテクスチャやグラデーションがあ...
1. Docker psはコンテナをリストします 2. Docker cpはコンテナにファイルをコピ...
成果を達成する html <h2>CSS3 タイムライン</h2> <...
Nginx はネストされた if ステートメントをサポートしておらず、if ステートメントでの論理判...
この記事では、キャンバスを使用して画像圧縮アップロードを実現するVueの具体的なコードを参考までに共...
Nginx (エンジン x) は、軽量で高性能な HTTP およびリバース プロキシ サーバーであり...
Docker は、次の CentOS バージョンでの実行をサポートしています。 • CentOS 7...
この記事を読む前に、ボリュームとバインドマウントの基本を理解しておいてください。詳細については、次の...
目次結果を一目で見るハート効果デジタルスクロールアニメーションアニメーションのように結果を一目で見る...
1. 父から息子へ子コンポーネントにpropsフィールドを定義し、その型は配列です (フィールド値の...
目次1. プロトタイプチェーン継承2. コンストラクタの借用(古典的な継承) 3. 組み合わせ継承4...
1. IEブラウザモードハックロゴ1. CSSハックロゴコードをコピーコードは次のとおりです。 ie...
LNMPのようなアーキテクチャを持つウェブサイトは、一般的にPHPフレームワークに基づいて開発されて...
カリで再現まず、必要なvim.basicファイルにsuid権限を設定します。 chmod u+s /...