7

我看到有一个很好的选择如何启用日志慢查询和没有索引的查询:

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

好的,好的,但似乎都写入了我在 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 回答