2015-04-06 52 views
1

PDO::fetch() LIMIT 1取等价于sql语句中的限制1?

上面的堆栈溢出帖子有一个最新的回答说是的,但是当我看到评论时,讨论带给我一定程度的好奇心。凡提及

"If you use LIMIT row_count with ORDER BY, MySQL ends the sorting as soon as 
it has found the first row_count rows of the sorted result, rather than 
sorting the entire result." 

这是http://dev.mysql.com/doc/refman/5.0/en/limit-optimization.html

参考这仅仅是如果我们使用ORDER BY查询的情况下,而不是简单地应用于SELECT和读取行。

所以我的问题是在一个简单的SELECT和Fetch语句中获取等价极限1?

回答

0

不,它不是等价的,因为一个简单的SELECT不能保证以任何特定的方式排序结果,就像它指定ORDER BY子句时一样。没有ORDER BY,查询(通常)比使用ORDER BY时快得多。当然,您仍然可以使用LIMIT而不使用ORDER BY,并且它(通常)会更快地返回较小的结果集。但是,性能优势并不是那么好,因为在这种情况下根本没有分类。