SELECT * vs SELECT * LIMIT(性能)

时间:2013-08-16 16:38:40

标签: mysql sql performance select sql-limit

我在t1uid中有超过10K条记录。我有5条记录uid='xyz' 现在哪种方法更好

SELECT * FROM t1 WHERE uid='xyz';

OR

SELECT * FROM t1 WHERE uid='xyz' LIMIT 5;

* uid只有5条记录为xyz *

3 个答案:

答案 0 :(得分:4)

通常,您将limitorder by子句一起使用。否则,结果是任意的,可能无法重复。

如果您想要 5 记录,请使用limit 5。如果您想要所有记录,则不要使用限制。如果两者都返回相同的数据,那么两者的性能应该非常非常相似。

答案 1 :(得分:1)

Asumming,正如你解释的那样,(绝对肯定)有5行,例如uid='xyz'

  • 两个语句的执行几乎完全相同,如果uid 上有索引,因为MySQL很容易“看到”只有5行需要检查。
  • 如果uid上没有索引,LIMIT版本的行为会更好,因为它会告诉MySQL在5 th 匹配行之后停止搜索 - - 避免“花时间”检查剩余的行。

答案 2 :(得分:0)

不使用限制的另一个原因是现在只有5条记录。从现在起一年可能会有17个。