首页 > 解决方案 > mysql-slow.log 如何找到具体查询 SELECT /*!40001 SQL_NO_CACHE */ * FROM

问题描述

运行此命令:

mysqldumpslow -a -s r -t 30 /var/lib/mysql/mysql-slow.log

给我这个:

Count: 1  Time=1346.85s (1346s)  Lock=0.00s (0s)  
Rows_sent=237930890.0 (237930890), Rows_examined=237930890.0 
(237930890), Rows_affected=0.0 (0), user[user]@localhost
SELECT /*!40001 SQL_NO_CACHE */ * FROM `sometable`

我的目标是找到慢查询并修复它

我搜索了“* FROM sometable”、“40001”、“SQL_NO_CACHE”,在源代码中都没有找到。这是怎么回事?所有其他查询,我都找不到问题。

我意识到计数是1。那是因为这是一个相对较新的日志,计数会上升。

标签: mysql

解决方案


@Rup 提供的答案。mysqldump 正在运行这些查询,而 mysql 将这些视为慢查询。

如果您查看mysqldump 的源代码(感谢 Raymond),它有以下代码:

SELECT /*!40001 SQL_NO_CACHE */ * FROM 

这正是 mysqldumpslow 返回的内容。


推荐阅读