如何在没有索引的情况下记录mySQL查询?

时间:2011-08-17 14:31:36

标签: mysql mysqldumpslow

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

  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来查看最慢的查询,但是我需要做什么来单独查看没有索引的查询?

你能帮我吗?

提前谢谢!

最佳,

的Jakub

1 个答案:

答案 0 :(得分:7)

你做不到。日志文件是一个文本文件,您无法从中推断出查询在执行时是否使用了索引。 此外,选项log-queries-not-using-indexes不一定记录未使用索引的查询see

  

如果您在启用慢查询日志的情况下使用此选项,则查询   将记录预期检索所有行的内容。见5.2.5节,   “慢查询日志”。 此选项并不一定意味着没有   使用了索引。例如,使用完整索引扫描的查询使用   索引但会被记录,因为索引不会限制   行数。