是否对所有可能的结果进行分组,然后发回给定LIMIT
内的结果?
答案 0 :(得分:2)
MySQL手册中的这个页面解释了它优化使用LIMIT的查询的方式:
http://dev.mysql.com/doc/refman/5.1/en/limit-optimization.html
简而言之,它不只是做天真的事情,这将是计算整个结果集,然后发送前N行。
有些事情会阻止优化,包括使用HAVING子句和使用SQL_CALC_FOUND_ROWS。
答案 1 :(得分:1)
LIMIT
子句只是选择返回的记录 - 它与查询本身返回的值无关。例如,如果对仅返回5行的查询使用LIMIT 10
,则只能获得5行。如果查询返回11行以上,则只能获得10行。对于使用LIMIT
始终返回相同结果的查询,您需要指定ORDER BY
子句。
考虑以下步骤中发生的查询:
ORDER BY
条件应用于查询步骤1的输出LIMIT
条件适用于步骤1&的输出2 如果没有指定ORDER BY,则不执行该步骤。