LIMIT MySQL php的最佳实践

时间:2014-02-01 00:46:43

标签: php mysql

我想知道在PHP PDO MySQL查询中是否有使用LIMIT的任何意义,当结果将以1行返回时(除非出现可怕的错误)。例如,给出一个表:

CREATE TABLE users (
    ID Int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    username varchar(25)
);

以下内容之间是否存在性能差异:

$stmt=$db->prepare("SELECT username FROM users WHERE ID=:ID");

$stmt=$db->prepare("SELECT username FROM users WHERE ID=:ID LIMIT 1");

编辑:所以我做了我自己的小调查,似乎差异在纳秒Lol,并且两种方法都没有比另一种更快。我只是将每个语句放在10000x循环中,并记录了几次运行...在笔记本电脑上也是如此,所以不科学或任何东西大声笑......

3 个答案:

答案 0 :(得分:0)

此查询不多,因为它位于主键上。

但是如果你正在做一个不太优化的查询,那么在有限制的查询和没有限制的查询之间会有一些小的区别。

也知道您的查询永远不会返回比预期更多的行,这让您高枕无忧。

答案 1 :(得分:0)

考虑每页调用多少查询以及每次加载页面的用户数。

您可能只会在一次查询中节省几纳秒,但它们都会加起来。

答案 2 :(得分:0)

使用LIMIT 1(或更通用的LIMIT偏移,长度)条款,保证在达到LIMIT后立即返回结果。

如果没有这样的限制,即使找不到更多匹配项,执行也可能继续 - 因此性能效果较差。 SQL查询越复杂,执行时间就越明显。

一般而言,应用合理的LIMIT条款始终被认为是一种好习惯。