序文しばらく前に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 における水平および垂直の中央揃え方法の詳細な説明 (基礎)
JavaScript の DOM イベント モデルでは、オブジェクトの addEventListen...
便利なターミナル エミュレーターである Xshell は、開発者がホスト サーバーをリモート管理する...
コード:コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC &...
目次序文一般的な方法1. 親コンポーネントを介して子コンポーネントの発行イベントをリッスンしてpro...
目次システムアップデート構成Windows Update サーバーの変更自動更新を有効にして許可する...
ページ内にはjs、cssなどの外部ファイルが導入されており、外部ファイルのエンコードが現在のページフ...
すべての前提条件にはルート権限が必要です1. MySQLプロセスを終了する //Linux sudo...
コンテナの自動起動Docker は、コンテナが終了したとき、または Docker が再起動されたとき...
1. ダウンロード1. MySQL msi 公式 Web サイトから最新のダウンロードをクリックす...
データベース接続のURLの詳細な説明と概要JDBC URL = プロトコル名 + サブプロトコル名 ...
商品を検索するときに、すべてのブランドまたは一部のブランドを表示するTaobaoの機能を真似してみま...
Vueボタンコンポーネントのカスタムカプセル化コードは参考用です。具体的な内容は次のとおりです。ボタ...
<br />注目を集めるウェブサイトを作成するには、どのような原則に従うべきでしょうか?...
最近、オンライン セキュリティ スキャンにより、MySQL コネクタに脆弱性が見つかりました。確認し...
a タグが新しいページを開くかどうか: (1)百度百科事典:ヘッダーが異なる場合は新しいページが開き...