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ミニプログラムは同時通訳を利用して音声認識を実装します

推薦する

Vueはechartを使用してラベルと色をカスタマイズします

この記事では、参考までに、echartを使用してタグと色をカスタマイズするVueの具体的なコードを紹...

ウェブページ作成に役立つコード

<br />ホームページの右側にあるスクロールバーを削除するにはどうすればよいですか? ...

SSHトンネルを使用してMySQLサーバーに接続する方法

序文場合によっては、データベースのイントラネット アドレスしか知らず、イントラネット経由で接続できな...

Nexus をベースに Alibaba Cloud プロキシ ウェアハウスを構成するプロセスの分析

Nexus のデフォルトのリモートリポジトリは https://repo1.maven.org/ma...

Docker-compose を使用して GitLab をデプロイする方法

Docker-compose は GitLab をデプロイします1. Dockerをインストールする...

InnoDBのインデックスページ構造、挿入バッファ、適応ハッシュインデックスについての簡単な説明

InnoDB インデックスの物理構造すべての InnoDB インデックスは Btree インデックス...

CentOS 8.4 に Docker をインストールする詳細なチュートリアル

目次序文:システム要件:インストール環境:古いバージョンをアンインストールします: yum は具体的...

MySQLでグローバル変数とセッション変数を設定する2つの方法の詳細な説明

1. MySQL でグローバル変数を変更するには 2 つの方法があります。方法 1: my.ini ...

Windows 10 での MySQL 8.0.11 圧縮バージョンのインストール チュートリアル

この記事では、MySQL 8.0.11圧縮版のインストールチュートリアルを参考までに紹介します。具体...

webpackを使用してTypeScriptコードをパッケージ化およびコンパイルする方法を教えます

TypeScript バンドルwebpack 統合通常、実際の開発では、ビルド ツールを使用してコー...

MySQL 5.6 での table_open_cache パラメータの最適化と適切な構成の詳細な説明

1. はじめにtable_cache は非常に重要な MySQL パフォーマンス パラメータであり、...

Docker プルタイムアウトの解決策

最近、Docker イメージのプルが非常に不安定です。遅く、タイムアウトすることがよくあります。 x...

Linux で Bash コマンド プロンプトをカスタマイズする方法

序文ご存知のとおり、bash (Bourne-Gain Shell) は、ほとんどの Linux デ...

vue-element-admin グローバル読み込み待機中

最近の要件:グローバルロード、すべてのインターフェースはロード待機機能を表示するかどうかを手動で制御...

MySQL (5.6 以下) の JSON 解析の詳細な例

MySQL(5.6以下)はjsonを解析します #json 解析関数 DELIMITER $$ `j...