7

ログの遅いクエリとインデックスなしのクエリを有効にする方法があると思います。

  SET GLOBAL log_queries_not_using_indexes=1;
  SET GLOBAL log_slow_queries=1;

OK、OK、しかし両方ともmy.cnf構成ファイルで指定した同じログファイルに書き込んでいるようです。

  [mysqld]
  long_query_time         = 1
  log-slow-queries        = /var/log/mysql/mysql-slow.log

mysqldumpslowを使用して最も遅いクエリを表示しますが、インデックスのないクエリを個別に表示するにはどうすればよいですか?

4

1 に答える 1

9

できません。ログ ファイルはテキスト ファイルであり、その実行時にクエリがインデックスを使用したかどうかを推測することはできません。また、このオプションlog-queries-not-using-indexesは、インデックスを使用していないクエリを必ずしもログに記録するとは限りません。以下を参照してください。

スロー クエリ ログを有効にしてこのオプションを使用すると、すべての行を取得することが予想されるクエリがログに記録されます。セクション5.2.5「スロークエリログ」を参照してください。このオプションは、必ずしもインデックスが使用されないことを意味するわけではありません。たとえば、フル インデックス スキャンを使用するクエリはインデックスを使用しますが、インデックスは行数を制限しないため、ログに記録されます。

于 2011-08-17T17:46:34.033 に答える