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

推薦する

vue3ソースコード解析の簡単な実装方法

目次序文🍹準備🍲vue3 の使い方🍖 実装要約する序文最近、私の最初の公式 vue3 + ts プロ...

JavaScript のディープコピーの落とし穴

序文以前、ある会社の面接に行ったとき、面接官から「オブジェクトを深くコピーするにはどうすればよいです...

JavaScript でのモグラ叩きゲームの実装

この記事では、モグラ叩きゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...

MySQLテーブルをコピーする方法

目次1.mysqlダンプ実行プロセス:特徴2. CSVファイルをエクスポートする(最も柔軟性が高い)...

MySQLがOracleのnvlと同様の機能を持つことができるかどうかについての簡単な議論

isnullの代わりにifnullを使用するisnull は、null かどうかを判断するために使用...

Linux dateコマンドの知識ポイントのまとめ

使用法: date [オプション]... [+フォーマット]または: date [-u|--utc|...

scss で mixin が動作しない問題の解決方法 (ブラウザでコンパイルできない)

ミックスインメソッド: ブラウザはコンパイルできません: 以前のバージョンのsassでは上記の記述方...

MySQL ストアド プロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

Vueはファイルのアップロードとダウンロード機能を実装します

この記事では、ファイルのアップロードとダウンロード機能を実装するためのVueの具体的なコードを例とし...

jsはショッピングカートの加算と減算、価格計算を実装します

この記事の例では、ショッピングカートの加算と減算、価格計算を実装するためのjsの具体的なコードを共有...

SQL 最適化チュートリアル: IN クエリと RANGE クエリ

序文「High Performance MySQL」では、インデックスでは範囲フィールドの後の部分が...

MySQL をデプロイするときに発生する「テーブル mysql.plugin が存在しません」という問題の解決方法

今日、MySQL の無料インストール版をデプロイしたところ、テーブル 'mysql.plug...

MySql 5.6.35 winx64 インストール詳細チュートリアル

注: データベースのバージョンの問題により、プロジェクトの起動時にエラーは発生しませんでしたが、デー...

vue.js 動的コンポーネントの詳細な説明

:動的コンポーネントv-bind:is="component name" を使用...

MySQL 増分バックアップとブレークポイントリカバリスクリプトの例

導入増分バックアップとは、完全バックアップまたは最後の増分バックアップの後、後続の各バックアップでは...