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

推薦する

W3C チュートリアル (8): W3C XML スキーマのアクティビティ

XML スキーマは、DTD に代わる XML ベースのものです。 XML スキーマは、DTD に代わ...

Linux での感嘆符コマンド (!) の使用の概要

序文最近、弊社では mbp の設定をしており、ssh を使うことが多くなりました。複雑なコマンドを書...

Tomcat セキュリティ仕様 (Tomcat セキュリティ強化と仕様)

tomcat はオープンソースの Web サーバーです。Tomcat ベースの Web は実行効率...

一般的な XHTML タグの使用方法の紹介

XHTML には多くのタグがありますが、頻繁に使用されるのはごくわずかであり、習得する必要があるのは...

Centos7 インストール mysql5.6.29 シェル スクリプト

この記事では、参考までにmysql5.6.29のシェルスクリプトを共有します。具体的な内容は次のとお...

HTML(CSSスタイル仕様)を読む必要があります

CSS スタイル仕様1. クラスセレクター2. タグセレクター3. IDセレクター4. CSSスタイ...

JavaScriptのアンチシェイクとスロットリングとは

目次1. 関数デバウンス1. 画像安定化とは何ですか? 2. 関数のスロットリング2.1 タイマーの...

MySQL 8.0.19 インストールチュートリアル

公式サイトからインストールパッケージをダウンロードします: mysql-8.0.19-linux-g...

データページング効果を実現する js オブジェクト

この記事の例では、データのページング効果を実現するためのjsオブジェクトの具体的なコードを参考までに...

Linux の高性能ネットワーク IO と Reactor モデルの分析

目次1. 基本概念の紹介2. ネットワークIOの読み取りと書き込みのプロセス3. 5つのLinuxネ...

Dockerボリュームマウントの実装方法

最も単純な hello world 出力イメージを作成することは最も簡単なスタートですが、実行中のコ...

Ubuntu 20.04 に cuda10.1 をインストールする手順 (グラフィック チュートリアル)

インストール前の準備CUDA の主な目的はディープラーニングであり、現在主流のディープラーニングフレ...

mysql 8.0.18 mgr のインストールと切り替え機能

1. システムインストールパッケージ yum -y インストール make gcc-c++ cmak...

IDEA を使用して Tomcat を設定し、JSP ファイルを作成する方法

idea を使用して JSP ファイルを書き込む前に、jdk 環境 (ここでは説明しません) と対応...

MySQL データベースの詳細な説明 (Ubuntu 14.0.4 LTS 64 ビットベース)

1. MySQLデータベースの構成と関連概念まず、MySQL はリレーショナル データベースである...