MySQLステートメントを監視する方法の詳細な説明

MySQLステートメントを監視する方法の詳細な説明

クイックリーディング

SQL ステートメントを監視する必要があるのはなぜか、監視方法と監視手段について説明します。

SQL Server には SQL プロファイルと呼ばれるツールがあり、SQL Server で実行された SQL ステートメントをリアルタイムで監視して、バグのデバッグを容易にしたり、最終的に生成された SQL ステートメントを確認したりできることがわかっています。

SQL ステートメントを監視する理由は何ですか?

  1. プログラムが大きくなるにつれて、SQL ステートメントが複数の場所から呼び出される場合があります。現時点で必要な文だけが実行されているか確認することはできません。
  2. 一部の永続化レイヤー フレームワークでは、SQL を記述するために LINQ 構文が使用されますが、これはプログラム内で SQL ステートメントを出力するのに便利ではありません。
  3. オンラインで実行中のプログラムを変更する方法はありません。しかし、問題がどこにあるのか確認する必要がありますか?実行された SQL ステートメント。 SQL ステートメントに基づいて、エラーが発生した場所を特定できます。

MySQL で SQL ステートメントを監視する方法は?

デフォルトでは、MySQL は SQL ステートメントの監視を有効にしません。有効にする必要がある場合は、次のコマンドを実行します。

SHOW VARIABLES LIKE "general_log%"; -- オフはオフを意味し、オンの場合はオンになっています。 SET GLOBAL general_log = 'ON'; -- ログ監視をオンにします。

私はオンにしています。オンになっていない場合、general_log が表示されます。

下の図に示すように、ログが保存されるデフォルトのパスを確認できます。

C:\ProgramData\MySQL\MySQL Server 5.5\Data\hcb-PC.log

次に、いくつかのSQL文を実行して確認します。

SQLを実行する

`プラットフォーム`から*を選択
`platform` を更新します。set platform_type=2 WHERE id=1

次にログを見てみましょう。

ログには次の内容が含まれていることがわかります

時間IDコマンド引数

それぞれ時間、ID、コマンド、パラメータに対応

パラメータは実行される SQL ステートメントを参照します。

MySQLのSQL文をテーブルに表示する方法

ログで表示するには不便ですが、SQL 文がデータベース内のテーブルに表示される場合はどうでしょうか?

次のSQLを実行します

グローバル log_output = 'TABLE' を設定します。 
mysql.general_log から * を選択し、event_time で DESC で並べ替えます。 

プロセスリストで表示

`information_schema` を使用します。
SELECT * FROM PROCESSLIST WHERE info IS NOT NULL;

この方法はリアルタイム表示できるとのことですが、新しいSQLがなぜリアルタイム表示できないのかは分かりません。とりあえず記録しておきます。

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • MySQL監視ツールmysql-monitorの詳細な説明
  • MySQL テーブルにおける非主キー列オーバーフロー監視の詳細な説明
  • Grafana+Prometheus を使用して MySQL サービスのパフォーマンスを監視する
  • Zabbix を使用して Nginx/Tomcat/MySQL を監視する方法の詳細なチュートリアル
  • MySQL インデックス使用状況監視スキル (収集する価値あり!)
  • Zabbix が MySQL のマスター/スレーブ状態を監視する方法の詳細な説明
  • MySQL データベース監視ソフトウェア lepus の使用上の問題と解決策
  • PrometheusとGrafanaを使用したMySQLサーバーのパフォーマンス監視の詳細な説明
  • MySQLリアルタイム監視ツールorztopの使い方の紹介
  • 実際のシミュレーション監視MySQLサービスシェルスクリプトの概要
  • MySQLを監視するためのZabbixのインストールと設定に関する基本的なチュートリアル
  • MySQL監視グループレプリケーションについて簡単に説明します

<<:  ネイティブ JavaScript 継承方法とその長所と短所の詳細な説明

>>:  Docker で hyperf を開発する完全な使用例の詳細な説明

推薦する

Oracle と MySQL の高可用性ソリューションの比較分析

Oracle と MySQL の高可用性ソリューションについては、以前からまとめたいと思っていたので...

CSS BEM 記述標準の詳細な説明

BEM は、Web 開発に対するコンポーネントベースのアプローチです。ユーザー インターフェイスを独...

NFS サーバーの原理と、その構築、構成、展開の手順を簡単に分析します。

目次NFS サービスの概要NFS とは何ですか? NFS マウントの原則NFS サーバーはデータ転送...

MySQL でデータ テーブルを作成し、主キーと外部キーの関係を確立する方法の詳細な説明

序文MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。主キーと...

MySQL テーブルの読み取り、書き込み、インデックス作成、その他の操作の SQL ステートメントの効率最適化の問題を分析します。

前回は、Explain 実行プランの表示、インデックスの分析など、MySQL での SQL クエリの...

Vue フロントエンド開発における階層的にネストされたコンポーネント間の通信の詳細な説明

目次序文例まとめ序文Vue の親子コンポーネントは、props を通じて親コンポーネントの値を子コン...

ubuntu16.04でNFSサービスを構築する方法

NFS の紹介NFS (ネットワーク ファイル システム) は、FreeBSD でサポートされている...

メタ宣言注釈の手順

メタ宣言注釈の手順: 1. モバイル ページと 1 対 1 で対応するすべての PC ページを分類し...

Linuxのtimeコマンドの使い方の詳しい説明

1. コマンドの紹介時間は、コマンドの実行に費やされた時間や関連するシステム リソース、その他の情報...

シンプルなショッピングカート機能を実現するjs

この記事の例では、簡単なショッピングカート機能を実現するためのjsの具体的なコードを参考までに共有し...

Centos 6.9 に MySQL をインストールするための詳細なチュートリアル

1. MySQLがインストールされているかどうかを確認します。次のコードで確認できます。 [root...

WeChatアプレットが計算機機能を実装

この記事では、WeChatアプレットの計算機機能を実装するための具体的なコードを参考までに紹介します...

WeChatアプレットが計算機機能を実装

WeChatミニプログラムはますます人気が高まっています。多くの大学生が独学で学んでいるのも見てきま...

Vueはボールのスライディングクロス効果を実現します

この記事の例では、ボールのスライドとクロスの効果を実現するためのVueの具体的なコードを共有していま...

Docker可視化管理ツールであるDocker UIの使用

1. DockerUIの紹介DockerUI は Docker API をベースとしており、Dock...