2011-06-21 9 views
11

私はMySQLサーバのバージョンを使用しています:5.5.8-log MySQLコミュニティサーバ(GPL)
INDEXを使用していないクエリをログに記録したいと思っています。
ここでmy.iniの設定をコピーしています。ログQUERIES INDEXを使用していません - MySQL

[mysqldを]
ポート= 3306
ログ= "E:/wamp/logs/genquery.log"

log_slow_queries
long_query_time = 1
slow_query_log = 1
slow_query_log_file =「E: /wamp/logs/slowquery.log "

私は何をする必要がありますか?

答えて

26

log_queries_not_using_indexes =1 //(or Yes)。あなたのランニングのレポートログを使用せずにを照会するシェルコマンドにmk-query-digestへの出力を使用することができ答えるのをa1ex07に加えて、セクション5.2.4、

+7

これらの日を使用するのは良い考えですか?索引が高速でないために索引が使用されない場合、秒を要するクエリーがログに記録されるため、GBのスロー・クエリー・ログになります。 – wired00

+0

これは、long_query_timeを超えてもインデックスを使用しないクエリーを記録します。質問は、インデックスを持たず、長期的に実行されているクエリを求めました。 – ClearCrescendo

+0

これは、long_query_time valに関係なくインデックスを使用しないクエリをログに記録しますか? –

5

log_queries_not_using_indexesインデックスを使用しないクエリはスロークエリログに記録されているかどうか

Command-Line Format --log-queries-not-using-indexes 
Option-File Format log-queries-not-using-indexes 
Option Sets Variable Yes, log_queries_not_using_indexes 
Variable Name log_queries_not_using_indexes 
Variable Scope Global 
Dynamic Variable Yes 
    Permitted Values 
Type boolean 

mysqlから)

1

Linuxユーザーにとっては便利かもしれません。 (Testet:Ubuntuの16.04)

端末と編集MySQL設定のGetルート

su 
vim /etc/mysql/conf.d/mysql.cnf 

[mysqld] 
slow_query_log=1 
slow_query_log_file=/var/log/mysql/slow-query.log 
long_query_time=1 
log_queries_not_using_indexes=1 

は、SQLを使用してMySQLサーバ

touch /var/log/mysql/slow-query.log 
chown mysql:adm /var/log/mysql/slow-query.log 
chmod 640 slow-query.log 
service mysql restart 

テスト遅いロギングが

/* Activate query log - Maybe useful to show errors (not necessary) */ 
SET GLOBAL SLOW_QUERY_LOG=ON; 

/* Check if slow query log is working */ 
SELECT SLEEP(2); 
に照会し、ログファイルを追加して再起動します
関連する問題