运行这个命令:
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,因为这是一个比较新的日志,计数会上升。
最佳答案
@Rup 提供的答案。 mysqldump 正在运行这些查询,而 mysql 将这些计为慢速查询。
如果你看一下mysqldump's source code (感谢 Raymond),它有这样的代码:
SELECT /*!40001 SQL_NO_CACHE */ * FROM
这正是 mysqldumpslow 返回的内容。
关于mysql-slow.log 如何查找特定查询 SELECT/*!40001 SQL_NO_CACHE */* FROM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56974410/