php - fetch相当于sql语句中的limit 1?

标签 php mysql sql

PDO::fetch() LIMIT 1

上面的 stack overflow 帖子有一个赞成的答案说是,但是当我查看评论时,讨论让我产生了一定程度的好奇心。它提到的地方

"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 和 FETCH 行。

所以我的问题是在简单的 SELECT 和获取语句中获取等效限制 1?

最佳答案

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

关于php - fetch相当于sql语句中的limit 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29479853/

相关文章:

php - 即使安装了Laravel-homestead也找不到Mysql

php - 样式下拉中心选择标签在 chrome 和 firefox 中的选项

php - 将 JavaScript 变量发送到 PHP 变量

mysql - 如何从 Redhat Linux 中完全删除 MySQL 8,以便安装 MySQL 5?

sql - 如何在存储过程中检查两个 SELECT 语句的输出是否等于、大于或小于?

php - 通过避免对所有条目进行单一 SELECT 来列出不会导致重复的 INSERT

mysql - 在mySQL中将一个字段拆分为两个字段

php - 使用通用函数查询数据库是不好的做法吗?

sql - 使用 Outlook 连接到 SQL Server 数据库

java - "parent"表上的 Oracle rownum