-1

general_log ファイルにはクエリがあります:

160806  9:53:26      11 Connect     dbname@localhost on 
     11 Query       SET NAMES utf8
     11 Query       SET character_set_client="utf8"
     11 Query       SET character_set_connection="utf8"
     11 Query       SET character_set_database="utf8"
     11 Query       SET character_set_results="utf8"
     11 Query       SET character_set_server="utf8"
     11 Query       SET character_set_system="utf8"
     11 Init DB     dbname

7 つのクエリの代わりに 1 つのクエリを作成することは可能ですか? 大幅にスピードアップしますか?

4

2 に答える 2

0

一般ログで現在トラフィックをキャプチャしているかどうかを確認します。

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

サーバーに接続するアプリを実行すると、一般ログに次のものが含まれます。

チャンクA:

160806 16:08:37   170 Connect   MrSmithers@www.xxx.yyy.zzz 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上記は、入ってくる新しい接続の接続スタブです。それは、使用中のプログラムのコマンドによって駆動されます。これは、慣れ親しんでコーディングするプログラム コマンドの前です。新しい接続を継続的に作成し、記述したコードを実行し、切断している場合、これらはすべて手荷物の一部です。単純な方法でそれらを最適化することはできません。

考慮すべきことは、実稼働環境で一般クエリ ログをオフにすることです。そして、デバッグおよびテスト環境設定中にのみ有効にします。それをオンにすると、スタックに不要な負担がかかります。

于 2016-08-06T20:25:15.433 に答える