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 を開発する完全な使用例の詳細な説明

推薦する

MySQL で distinct メソッドを使用する詳細な例

明確な意味: distinctive は、一意のレコードの数を照会するために使用されます。つまり、d...

VUEは底部吸引ボタンを実装

この記事では、VUEの具体的なコードを共有して、下部吸引ボタンを実装する例を紹介します。具体的な内容...

Linux lessコマンド例の詳細な説明

ファイル名が少ないファイルを表示ファイル名を少なく | grep -n コンテンツを検索内容に応じて...

Nginxにモジュールを動的に追加する方法

前面に書かれた多くの場合、現在のプロジェクトの状況とビジネスニーズに基づいて Nginx をインスト...

Vant+postcss-pxtoremはブラウザ適応機能を実装します

Remレイアウトの適応Vant のスタイルでは、デフォルトで px を単位として使用します。rem ...

フォームアクションとonSubmitの例

まず、action はフォームの属性です。HTML5 では必須の属性値として定義されています。onS...

ECMAScript6 におけるマップマッピングの基本概念と一般的な方法

目次マッピングとは何かオブジェクトとマップの違いマップの共通メソッド宣言と初期化割り当てセットキー値...

Linux telnetコマンドの使用

1. はじめにtelnet コマンドは、リモート ホストにログインするために使用されます。これは、T...

Dockerコンテナの操作手順の概要と詳細説明

1. コンテナを作成して実行するdocker run -it --rm centos:latest ...

MySQL ビューの紹介と基本操作のチュートリアル

序文ビューは、データベース システム内で非常に便利なデータベース オブジェクトです。 MySQL 5...

MySQL の時間差関数 TIMESTAMPDIFF と DATEDIFF の使用

時間差関数 TIMESTAMPDIFF と DATEDIFF の使用SQL ステートメント、特にスト...

Nginxはctxを使用してデータ共有とコンテキスト変更機能を実現します。

環境: init_worker_by_lua、set_by_lua、rewrite_by_lua、a...

WeChatアプレットは写真の撮影とアルバムからの写真の選択を実現します

この記事では、WeChatアプレットで写真を撮ったり、アルバムから写真を選択したりするための具体的な...

Linux のリンク解除機能とファイルの削除方法

1. リンク解除機能ハード リンクの場合、unlink はディレクトリ エントリを削除し、inode...

Linux デスクトップ用に Openbox を設定する方法 (推奨)

この記事は、「24 Days of Linux Desktop」の特別シリーズの一部です。 Open...