我看到有一个很好的选择,如何启用没有索引的日志慢查询和查询:
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
答案 0 :(得分:7)
你做不到。日志文件是一个文本文件,您无法从中推断出查询在执行时是否使用了索引。
此外,选项log-queries-not-using-indexes
不一定记录未使用索引的查询see:
如果您在启用慢查询日志的情况下使用此选项,则查询 将记录预期检索所有行的内容。见5.2.5节, “慢查询日志”。 此选项并不一定意味着没有 使用了索引。例如,使用完整索引扫描的查询使用 索引但会被记录,因为索引不会限制 行数。