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 インデックスのカーディナリティの概念と使用例

この記事では、例を使用して、MySQL インデックス カーディナリティの概念と使用方法を説明します。...

この構成ファイルの排他ロックに失敗したという VMware 仮想マシンのプロンプトの解決方法

VMware が異常シャットダウンした後、再起動すると「この構成ファイルを排他的にロックできませんで...

Ubuntu 18.04 に VMware Tools をインストールする際のエラーを解決する

1. オンライン チュートリアルによると、Ubuntu 18.04 のインストールはまだ失敗します。...

要素タイムラインの実装

目次コンポーネント - タイムラインカスタムノードスタイルカスタムタイムスタンプコンポーネント - ...

HTML で自動ページジャンプを実現する 5 つの方法

前回の記事では、HTML ページが 3 秒後に自動的にジャンプする一般的な 3 つの方法を紹介しまし...

MySQL ルート パスワードをリセットするときに発生する「不明な列 'password'」問題を解決する方法

夜にMACの電源を入れたところ、突然ルートアカウントがMySQLに正常にログインできなくなったため、...

Reactでファイルパスエイリアスを素早く設定する方法

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。F...

WeChatアプレットは画像コントロールを選択します

この記事の例では、WeChatアプレットで画像コントロールを選択するための具体的なコードを参考までに...

Mysql マルチテーブル結合クエリの実行の詳細について簡単に説明します。

まず、このブログのケースデモンストレーション テーブルを作成します。 create table a(...

Vue3 における computed の新しい使用例のまとめ

vue3 での computed の使い方。vue3 は vue2 のオプション API と互換性が...

JavaScript でクールなマウス テーリング効果を実装

これを見た後、あなたにも手ができて、さまざまな美しい小さなしっぽを作れるようになることを保証します!...

虫眼鏡の詳細のJavaScript実装

目次1. レンダリング2. 実施原則3. まとめ1. レンダリング 2. 実施原則幅と高さが等しい拡...

JavaScriptは組み込みオブジェクトのプロトタイプメソッド実装を追加します

オブジェクトがメソッドを呼び出す順序:インスタンス内にメソッドが存在しない場合は、インスタンス オブ...

MySQL インデックスの効率的な使用ガイド

序文ほとんどの方がMySQLとインデックスを使用したことがあると思いますが、適切なインデックスを作成...

スクリプトを使用して、ワンクリックでDockerイメージをパッケージ化してアップロードします。

著者は1年以上マイクロフロントエンドプロジェクトに取り組んできました。チームは10個のマイクロアプリ...