gpt4 book ai didi

mysql - 从 mysql-client 即时运行的慢查询

转载 作者:行者123 更新时间:2023-11-29 14:03:24 25 4
gpt4 key购买 nike

我在/var/log/mysql/mysql-slow.log 中记录了一个慢速查询,使用 PDO 从 php 运行,当我将其复制粘贴到 mysql-client 中时,即使在重新启动后,我也会立即得到答案mysql。你如何解释这一点?

这是查询:

SELECT many_fields FROM some_table u WHERE (u.created_at >= '2011-11-01' AND u.created_at <= '2012-02-01' AND u.valid IS TRUE AND u.test IS FALSE);

以下是查询的解释:

+----+-------------+-------+------+---------------+------+---------+------+-------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+---------------+------+---------+------+-------+-------------+
| 1 | SIMPLE | u | ALL | NULL | NULL | NULL | NULL | 86460 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+-------+-------------+

这是运行 php 脚本时 SHOW FULL PROCESSLIST 的输出:

+-----+---------+-----------+-----------------------+---------+------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+---------+-----------+-----------------------+---------+------+-------+-----------------------+
| 9 |some_user| localhost | some_db | Query | 0 | NULL | SHOW FULL PROCESSLIST |
| 187 |some_user| localhost | some_db | Sleep | 6 | | NULL |
+-----+---------+-----------+-----------------------+---------+------+-------+-----------------------+

最佳答案

正如您在回复我的评论时所说,您正在记录不使用索引的查询。此查询未使用索引,因此它会与慢速查询一起记录。由于不使用索引而记录的查询在记录时会忽略最短执行时间。

编辑:SHOW FULL PROCESSLIST 中的Time 列显示其处于当前状态的时间,通常设置为Sleep当查询完成时,时间对于计时查询来说不可靠。为了获得更可靠的查询计时,您需要使用分析或其他更直接地处理查询的基准测试方法。

关于mysql - 从 mysql-client 即时运行的慢查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14735300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com