1
4
这要看你是否有订单。ORDER BY无论如何都需要整个结果集,因此可以对其进行排序。 如果你没有任何订单,它应该运行得更快。 在任何情况下,它都会运行得更快,因为当然不需要发送整个结果集。 |
2
2
是的!它会的! 但要确定的是,在SQL语句的末尾添加“limit 1”只需要一秒钟,所以为什么不试一试,看看 |
3
2
这完全取决于查询本身。如果您正在执行索引查找(indexedColumn=someValue)或对索引列进行排序(不带WHERE子句),那么limit 1将真正加快速度。如果您有join或多个where/order子句,那么事情会很快变得非常复杂。但要带走的主要东西,使用“限制1”将 从未 放慢查询速度。它有时会加快速度,但不会减慢速度。 现在,在处理PHP时还有另一个问题。默认情况下,php将在从查询返回之前缓冲整个结果集(mysql_query或mysqli->查询仅在下载完所有记录后返回)。因此,尽管查询时间可能会被限制为1,但是php用来缓冲结果的时间和内存是非常重要的。假设每行有200字节的数据。现在,查询返回10000行。这意味着PHP必须分配一个额外的2MB内存(实际上接近10MB的内存,其中包含了PHP变量结构的开销),您将永远不会使用它。分配内存可能非常昂贵,所以一般规则是只分配您需要的(或认为您需要的)。当你只想要1时下载10000行是浪费。 结合这两种效果,您可以看到为什么如果只需要一行,则应该始终使用“限制1”。 |
4
0
Here is some relevant documentation 关于MySQL站点的主题。
根据查询的其他部分,它似乎可以以不同的方式加快速度。我不确定当你没有
|
5
0
实际上,这是limit子句的基本目的:p如果您知道您想要多少结果,那么您应该始终将该数字指定为限制,这不仅是因为它更快(除非您正在执行order by),而且要更高效地处理PHP脚本中的内存。 注意:我假设您将mysql与php结合使用,因为您将php添加到了标签中。如果您只是直接从MySQL中选择(脚本语言之外),那么在使用ORDERBY时使用LIMIT的优势纯粹是为了使结果更易于管理。 |
hello_programmers · Mysql从其他表输出一列 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |
Popo · Sql查询:返回数据库中不可用的where条件 1 年前 |
Hamdan Nuramdani · 对账单中一周内不同表中的数据求和 1 年前 |
Kugelfisch · 用php为数据库加密数据 1 年前 |