我已经告诉 MySQL 记录花费时间超过一秒的查询(1
在配置中)...但是我看到像这样的查询花费的时间远远少于一秒......
# Time: 101108 6:39:32
# User@Host: source_member[source_member] @ localhost []
# Query_time: 0.007271 Lock_time: 0.000062 Rows_sent: 1 Rows_examined: 2635
SET timestamp=1289216372;
SELECT
id,
name,
email,
auth_key
FROM member
INNER JOIN source_member.group_assoc ON (
source_member.group_assoc.group_id = 121 AND
source_member.group_assoc.member_id = member.id
);
我的设置是...
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1
log-queries-not-using-indexes
我应该问......这意味着它只记录根本没有任何索引的查询?
答案1
什么是长查询时间设置为?log-long-format 或 log-queries-not-using-indexes active?
最可能的解释是日志设置不正确。
--log-queries-not-using-indexes 和 log-long-format 都会导致未使用索引的查询被记录。有时不使用索引会更快,这会导致大量的日志垃圾。
还要注意,您可能在某处锁定 IO。long_query_time 是根据 WALL 时间而不是 CPU 时间进行检查的。