我在 /var/log/mysql/mysql-slow.log 中记录了一个慢查询,使用 PDO 从 php 运行,当我将它复制粘贴到 mysql-client 中时,即使在重新启动 mysql 后,我也会立即得到答案。你怎么解释?
这是查询:
从 some_table u WHERE 中选择 many_fields(u.created_at >= '2011-11-01' AND u.created_at <= '2012-02-01' AND u.valid 为真且 u.test 为 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 |
+-----+---------+-----------+-----------------------+---------+------+-------+-----------------------+