Mysqlは実行中のトランザクションを照会し、ロックを待機する方法

Mysqlは実行中のトランザクションを照会し、ロックを待機する方法

navicatを使用してテストと学習を行います。

まず、 set autocommit = 0;を使用します (自動コミットをキャンセルし、その後、commit または rollback ステートメントが実行されると、トランザクションがコミットまたはロールバックされます)

updateを開く

実行中のトランザクションを照会します。

情報スキーマ.INNODB_TRXから*を選択します

このトランザクションのスレッド ID ( trx_mysql_thread_id ) によると、

上の図から、対応するmysqlスレッドがわかります。1 つは 94362 (2 つ目はロックを待機中)、もう 1 つは 93847 (最初の更新はトランザクションをコミットせずに実行中) です。

スレッドを強制終了するには、mysqlコマンドkill thread idを使用します。

この期間中にロックを保持しているスレッドが強制終了されない場合: 2番目の更新ステートメントは、ロックの待機時間がタイムアウトしたことを通知します。

クエリ mysql データベースを使用することもできます:

ロックされた取引を表示する

INFORMATION_SCHEMA.INNODB_LOCKS から * を選択します。

ロックを待機しているトランザクションを表示する

INFORMATION_SCHEMA.INNODB_LOCK_WAITS から * を選択します。

MySQLデータベースに存在するプロセスをクエリする

[sql] プレーンコピーを表示

information_schema.`PROCESSLIST` から * を選択します (プロセスリストを表示します;)

コンセプト:

MySQL のdatabaseinstancesession

MySQLでセッションを確立するには、特定のデータベースに接続するのではなく、インスタンスとのセッションを確立します(つまり、Navicatでクエリを実行するときに、ポートに対応する複数のデータベースをクエリすることができ、クエリにはデータベース名+データテーブル名で十分です)

物理マシン上に複数のinstanceを作成することができ、インスタンスはportによって区別できます。

インスタンスは複数のデータベースを作成できます。つまり、セッションはインスタンス上で複数のデータベースを操作できます。

jdbc プロトコルは、データベースに接続します: jdbc:mysql://localhost:3306/test jdbc プロトコルは、ポート 3306 を使用してローカル インスタンスのテスト データベースに接続します。データ テーブルをクエリするときに、データベース名を追加する必要はありません。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • MySQL トランザクション分離レベルの表示と変更の例
  • MySQL でコミットされていないトランザクション情報を見つける方法
  • MySQLにおけるACIDトランザクションの実装原理の詳細な説明
  • 更新とデータ整合性処理のためのMySQLトランザクション選択の説明
  • Javaで実装されたMySQLトランザクション処理操作の例
  • PHP+MySQL の高同時ロックトランザクション処理問題の解決方法
  • MySQLでトランザクションを開始する方法

<<:  Dockerの一般的なコマンドとヒントのまとめ

>>:  WeChatミニプログラムは同時通訳を利用して音声認識を実装します

推薦する

純粋な CSS を使用してユーザーが Web ページのコンテンツをコピーするのを防ぐ方法

序文私自身の個人ブログを入力しているときに、ブログの詳細ページでさまざまなコンテンツをコピーするさま...

一定時間後にNavicatがデータベースから自動的に切断される問題の解決方法

これは、データベース サーバーが、接続が多すぎるのを避けるために、一定時間非アクティブな状態が続くと...

Linuxシステムにおける重要なサブディレクトリの問題について話す

/etc/fstabパーティション/ディスクを自動的にマウントし、マウントするパーティション/デバイ...

Linux で文字化けしたファイルや特殊文字のファイルを削除する方法

エンコーディングの理由により、Linux サーバーに中国語のファイルやディレクトリをアップロードまた...

uni-app で scss を使用するサンプル コード

遭遇した落とし穴私は午後中ずっと、uni-app で scss を使用する際の落とし穴を解決すること...

nginxリバースプロキシを使用するときに長時間接続を維持する方法

・【シーン説明】 HTTP1.1 以降、HTTP プロトコルは永続的な接続 (長い接続とも呼ばれます...

Linux でファイル権限を変更する chmod コマンドの詳細な分析

Linux chmodコマンドを使用して、ターゲット ファイルにアクセス、読み取り、書き込み、または...

Vueはタブを切り替えてデータの状態を維持する3つの方法を実装します

Vue でタブ切り替えを実装する 3 つの方法1. v-showはコンテンツの切り替えを制御します1...

Alipay の新しいホームページのフロントエンドの実践的な概要

もちろん、ページ パフォーマンスの最適化に関する個人的な経験も含まれています。ここでいくつかの点につ...

WindowsにOpenSSLをインストールし、OpenSSLを使用して公開鍵と秘密鍵を生成します。

1. OpenSSL公式サイト公式ダウンロードアドレス: https://www.openssl....

Vueページジャンプの実装方法

1. this.$router.push() 1. ビュー <テンプレート> <d...

Windows 10 システムで Mysql8.0.13 のルート パスワードを忘れる方法

1. まずmysqlサービスを停止します管理者としてCMDを開いて閉じるか、Windowsサービスペ...

JavaScript で localStorage を使用する方法

.NET の世界に参入したい開発者であれば、何が可能なのかを知る必要があります。 .NET Fram...

VMware に Centos8 をインストールする詳細なチュートリアル

CentOS公式サイトアドレスhttps://www.centos.org/まず必要なファイルをダウ...

Vueの最初のレンダリングのプロセス全体についての簡単な説明

目次1. Vueの初期化vue エントリ ファイルフルバージョンとランタイムバージョンの違い1.1、...