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

推薦する

Nginx リバース プロキシと負荷分散の実践

リバースプロキシリバースプロキシとは、プロキシサーバーを介してユーザーのアクセス要求を受信し、ユーザ...

CSS3 シンプルカットカルーセル画像実装コード

実装のアイデアまず、親コンテナーを作成し、2 つの順序なしリストを使用して、柔軟なレイアウトで親コン...

Nginx ドメイン名の書き換えとワイルドカードドメイン名の解決を設定する方法

この記事では、ドメイン名の書き換えとワイルドカードドメイン名の解決を行うための Nginx の設定方...

シンプルなプログレスバーを作成するための HTML+CSS

1. HTMLコードコードをコピーコードは次のとおりです。経験値: <span class=...

圧縮パッケージを使用して Linux 環境に JDK 13 をインストールする方法

JDK とは何ですか?まあ、この質問がわからないのであれば、なぜこれをインストールするのか本当にわか...

CSSのclip-pathプロパティを使用して不規則なグラフィックを表示する

clip-path CSS プロパティはクリッピングを使用して要素の表示可能領域を作成します。領域内...

Vueは左上と右上のスライドナビゲーションを実装します

ナビゲーションなどは日々の開発でよく使うので、記録として記事を書きます。ナビゲーションは終了/開始位...

vmware14Pro で Ubuntu システム インターフェイスが小さすぎる問題の解決方法の詳細な説明

1. 動作環境vmware14proウブントゥ 16.04LTS 2. 問題の説明vmware14P...

Vueカスタム命令の詳細な説明

目次Vueカスタムディレクティブカスタムディレクティブフック機能出力関連属性アプリケーション例要約す...

Tudou.com フロントエンドの概要

1. 分業とプロセス<br />Tudou.comでは、プロジェクト開発が中核であり、誰...

Linux 論理ボリューム管理 (LVM) の使用法の概要

ディスク領域の管理は、システム管理者にとって重要な日常的なタスクです。ディスク領域が使い果たされると...

テーブルはセルとimg画像を結合してtd HTML全体を埋めます

ソースコード(一部のクラスは削除されています):コードをコピーコードは次のとおりです。 <テー...

Vue で Axios カプセル化を使用するための完全なチュートリアル

序文現在、プロジェクトでは、Axios ライブラリが HTTP インターフェース リクエストによく使...

Ubuntuにmysql5.7.10を手動でインストールする

このチュートリアルでは、UbuntuにMySQL 5.7.10を手動でインストールする手順を参考まで...

JSが絵柄デジタル時計を実現

この記事の例では、画像デジタル時計を実現するためのJSの具体的なコードを参考までに共有しています。具...