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

推薦する

リアルタイムコンピューティングフレームワークFlinkクラスタの構築と動作メカニズムについての簡単な説明

目次1. Flinkの概要1.1 基本的な紹介1.2 アプリケーションシナリオ2. 環境の展開2.1...

Vueでキャッシュされたページを管理する方法

目次問題1: 破壊1. 破壊する方法2. いつ破壊するか2.1 解決策1: route.queryを...

CSS3入力ボックスの実装コードはGoogleログインのアニメーション効果に似ています

CSS3を使用して、Googleログインページと同様の入力ボックスをアニメーション化します。効果1 ...

win10にmysql 8.0.18-winx64をインストールする詳細な手順

1. まず公式ウェブサイトにアクセスしてMySQLインストールパッケージをダウンロードします参考: ...

MySQLでホワイトリストアクセスを設定する方法

MySQLでホワイトリストアクセスを設定する手順1. ログイン mysql -uroot -pmys...

MySQL では UTF-8 が推奨されないのはなぜですか?

最近、Rails 経由で「utf8」でエンコードされた UTF-8 文字列を MariaDB に保存...

組み込み移植 docker エラー問題 (概要)

長い移植と情報検索の期間を経て、組み込みDockerの問題を解決することができました。インターネット...

crontab 実行時間とシステム時間の不一致の解決方法

序文LINUX では、定期的なタスクは通常、cron デーモン プロセス [ps -ef | gre...

Docker で最初のアプリケーションをデプロイする方法

前回の記事では、Docker Desktop をインストールし、Kubernetes を有効にしまし...

vue.js ベースの QQ チャット ルーム

目次導入効果のデモンストレーションは次のとおりです。 MChat コンポーネントのレンダリング: I...

vue 動的コンポーネント

目次1. コンポーネント2. キープアライブ2.1 問題点2.2 キープアライブを使って解決する2....

iframe タグの使用方法の詳細な説明 (属性、透明度、適応高さ)

1. iframe の定義と使用法iframe 要素は、別のドキュメントを含むインライン フレーム...

Nginx+tomcat ロードバランシングクラスタの実装方法

実験環境は以下のとおりですここでは、4 台のサーバー (1 台の nginx、負荷用の 2 台の t...

CSS3 を使用して楕円軌道の回転を実装するサンプルコード

最近、次のような効果を達成する必要がある最初は、CSS3D回転を使用して記述すると、次の効果しか得ら...

MySQLデータ損失のトラブルシューティング事例

目次序文現地調査ケースの再現要約する序文最近、友人が突然WeChatで連絡してきて、MySQLでデー...