MySQL命令解释忽略LIMIT吗?

问题描述 投票:10回答:2

我使用的是MySQL服务器版本5.5.14,现在我正在尝试使用Explain命令尝试此简单的SQL查询:

EXPLAIN SELECT id, name, thumb FROM `twitter_profiles` LIMIT 10;

它向我显示了此结果:

+----+-------------+-------+------+---------------+------+---------+------+-------+-------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows  | Extra |
+----+-------------+-------+------+---------------+------+---------+------+-------+-------+
|  1 | SIMPLE      | tp    | ALL  | NULL          | NULL | NULL    | NULL | 40823 |       |
+----+-------------+-------+------+---------------+------+---------+------+-------+-------+
1 row in set (0.02 sec)

我的问题是为什么它扫描整个表而不是按照我在LIMIT子句中指定的前10行进行扫描?

mysql limit explain
2个回答
14
投票

这里是有关MySQL EXPLAIN limits and errors的文章的很好链接

LIMIT在估算行数时未考虑在内如果您有LIMIT来限制要检查的行数MySQL仍会打印完整号码


-3
投票

您需要使用以下命令:

EXPLAIN SELECT id, name, thumb
FROM twitter_profiles ORDER BY LIMIT 10;
© www.soinside.com 2019 - 2024. All rights reserved.