2

t1我在一个有列的表中有超过 10K 条记录uid
uid='xyz'
现在有 5 条记录,其中 2 条方法更好

SELECT * FROM t1 WHERE uid='xyz';

或者

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

*只有 5 条 uid 为 xyz 的记录 *

4

3 回答 3

4

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

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

于 2013-08-16T16:42:28.607 回答
1

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

  • 如果有一个索引,uid这两个语句的执行几乎完全相同,因为 MySQL 很容易“看到”只有 5 行要检查。
  • uid如果版本上没有索引会表现得更好,因为它会告诉 MySQL 在第 5LIMIT匹配行之后停止搜索——避免“花时间”检查剩余的行。
于 2013-08-16T17:29:58.220 回答
0

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

于 2013-08-16T18:44:58.997 回答