現在、一般ログでトラフィックをキャプチャしているかどうかを確認します:
SELECT @@general_log; -- 1 if capturing, 0 if not
-- for me, a 1. This means I have been capturing (good for development. Poor idea for Production)
SELECT @@general_log_file; -- file name for General Log if capturing.
-- for me: GeneralLogBegin_20160803_1420.log
SELECT @@datadir; -- the location of the general_log, and other logs
-- for me: C:\ProgramData\MySQL\MySQL Server 5.6\Data\
キャプチャしていたので、以下の一般ログのキャプチャをオフにします。
SET GLOBAL general_log=0; -- stop logging
ログファイルをバックアップディレクトリに移動し、名前をGL_from_20160803_1420_to_20160806_1559
に変更します。
上記のファイルが具体化するキャプチャの内容と日時の範囲には、ほとんどあいまいさがありません。
ログファイルキャプチャの新しい名前を設定します(ファイル名のセグメントの開始)
SET GLOBAL general_log_file='GeneralLogBegin_20160806_1559.log';
SET GLOBAL general_log=1; -- Start logging again
サーバーに接続する私のアプリを実行すると、一般ログに次のものが含まれます:
ChunkA:
160806 16:08:37 170 Connect [email protected] on stackoverflow
170 Query SHOW VARIABLES
170 Query SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP())
170 Query SHOW COLLATION
170 Query SET NAMES latin1
170 Query SET character_set_results=NULL
170 Init DB my_db_name
注:実行する必要がある場合があります
mysqladmin -u root -p flush-log
(パスワードの入力を求められます)ログをキャッシュからファイルにフラッシュするため。ちなみに、 Sublime Text 現在ロードされているテキストファイルの自動更新に最適です。ログファイルなど。
だから私のChunkA
上記は、着信する新しい接続の接続スタブです。これは、使用中のプログラムのコマンドによって駆動されます。あなたが慣れてコーディングするのはあなたのプログラムコマンドの前です。新しい接続を継続的に作成し、作成したコードを実行し、切断している場合、これらはすべて手荷物の一部です。単純な方法でそれらを最適化することはできません。
検討すべきことは、実稼働環境で一般クエリログをオフにすることです。また、デバッグおよびテスト環境の設定中にのみ有効にします。装着すると、スタックに不要な負担がかかります。