アプリケーションがありemployee management
ます。MySQLデータベースを使用しています。
私のアプリケーションには、のような機能がありadd /edit/delete /view
ます。
機能を実行するたびに、データベースで1つのクエリが実行されます。add employeeの場合と同様に、insert
クエリを実行します。
そのため、データベースで何かを実行して、日付までに実行されたクエリの数を確認したいと思います。
Javaコードに変更を加えたくありません。
あなたが使用することができますSHOW STATUS
:
SHOW GLOBAL STATUS LIKE 'Questions'
サーバーステータス変数に記載されているとおり:
ステータス変数の意味は次のとおりです。
[ deletia ]
サーバーによって実行されたステートメントの数。
Queries
これには、変数とは異なり、クライアントによってサーバーに送信されたステートメントのみが含まれ、ストアドプログラム内で実行されたステートメントは含まれません。この変数は、、、、、、またはコマンドをカウントCOM_PING
しません。COM_STATISTICS
COM_STMT_PREPARE
COM_STMT_CLOSE
COM_STMT_RESET
注意してください:
FLUSH STATUS
が発行されると、統計はリセットされます。
SHOW STATUS
コマンド自体はステートメントであり、カウンターをインクリメントしますQuestions
。
これらの統計はサーバー全体であるため、同じサーバー上の他のデータベース(存在する場合)が含まれます。データベースごとの統計の機能要求は2006年1月から開始されています。それまでの間、 google-mysql-tools/UserTableMonitoringからテーブルごとの統計を取得できます。
以下に説明するようにクエリを実行する必要があります。
SELECTクエリ数を取得するには、次を実行します。Show global status like 'com_select';
UPDATEクエリ数を取得するには、次を実行します。Show global status like 'com_update';
DELETEクエリ数を取得するには、次を実行します。Show global status like 'com_delete';
INSERTクエリ数を取得するには、次を実行します。Show global status like 'com_insert';
また、一般的なログを分析したり、MySQLプロキシを介してアプリケーションをルーティングしたりして、サーバー上ですべてのクエリを実行することもできます。
コードを変更したくない場合は、トリガーを使用してデータベースでこれをトレースできます。制限は、トリガーは挿入/更新/削除時にのみ起動できるため、読み取り(選択)のカウントには使用できないということです。
多分それはあなたの質問にはあまりにも「企業」であり、あまりにも「生産」です。
munin(http://munin-monitoring.org/)(他のmonitoring-toolsには同様の拡張機能があります)を使用する場合、リクエストの数を表示するmysql-monitoringツールを使用できます(Insert / Update /Loaddata/で分割されます。 。)あなたは発砲しています。
これらのツールを使用すると、使用量と生成している負荷を確認できます。特にデータが変更され、より多くのアクセス/ロード(インデックスの欠落、m:nテーブルが大きいためにクエリが増えるなど)が発生する可能性がある場合は、それを認識できます。
それは非常に便利で、休憩中にチェックを行うことができます。タイピングも何もせず、グラフを確認するだけです。
動作するためにデータベースやアプリケーションを変更する必要がない最も正確な方法は、すべてのイベントをログに記録するようにデータベース管理システムを構成することだと思います。
必要に応じて分析できるテキストファイルであるログファイルが残ります。
これが、開始するためのGeneralQueryLogのマニュアルページです。