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

推薦する

Ansibleを使用してディレクトリ内のすべてのコンテンツを削除する方法

Ansible を使用する学生は、以下に示すように、Ansible が特定のフォルダーまたはファイル...

MySQL インストール図の概要

MySQL 5.5 のインストールと設定方法のグラフィックチュートリアルMySQL 5.5 のインス...

MySQLの空の値とnull値の違いを知っていますか?

序文最近、友人がSQLを書くときにnull値を判定する方法が間違っていて、プログラム内のデータにエラ...

CSS を使用して親コンテナ div を img 画像で埋め、コンテナのサイズを調整する方法

ページに複数の画像を導入すると、画像のサイズがばらつくことがあります。しかし、それらを一貫したサイズ...

JSブラウザストレージの詳しい説明

目次導入クッキークッキーとはクッキー生成方法クッキーの適用シナリオクッキーのデメリット回避策ローカル...

CSS で点線の境界線のスクロール効果を実装するサンプルコード

マウスをある領域の上に置くと、その領域に点線の境界線と線のアニメーションが表示されるというクールな効...

CSS疑似クラス名を数字で始めないでください

初心者が div+css を開発する場合、.ggg、#ccc などの形式の CSS 疑似クラス名を付...

uniAppエディタWeChatスライド問題について

ユニアプリアプレットはWeChatでも同様のドロップダウン問題を抱えることになる解決策は、app.v...

Vue ページ内の公開マルチタイプ添付画像アップロード領域と適用可能な折りたたみパネル (サンプルコード)

フロントエンド プロジェクトでは、添付ファイルのアップロードは非常に一般的な機能であり、ほぼすべての...

MySQL レプリケーションの利点と原則を詳しく説明します

レプリケーションとは、マスター データベースの DDL および DML 操作をバイナリ ログを介して...

特定の部門 ID に基づいて、すべての下位レベルの複数レベルのサブ部門を照会する MySQL の例

シミュレーションテーブルとデータスクリプト次の SQL ステートメントをコピーして、sys_dept...

js配列forEachインスタンスの詳細な使用方法

1. forEach() は map() に似ています。これも渡された関数に各要素を順番に適用します...

MySQL SQL ステートメントが遅い場合の一般的な原因と解決策

1. インデックス不足または無効なインデックスによるクエリの遅延数千万件のデータを含むテーブルで、イ...

Webフロントエンドベクターアイコンの使い方

序文フロントエンドページを書くとき、小さなアイコンなどの画像を使うことが多いです。画像を使うとコード...

HTML+CSS で div タグの右上隅に削除アイコンを追加するサンプルコード

1. 要件の説明Divタグの右上隅に削除アイコンを表示します2. 実装html、CSS 3. 参照コ...