选择行mysql的最佳方法

时间:2012-06-02 05:50:24

标签: mysql database row mysql5

以下哪种符号更好?

SELECT id,name,data FROM table WHERE id = X

OR

SELECT id,name,data FROM table WHERE id = X LIMIT 1

我认为不应该有“限制”。

谢谢!

2 个答案:

答案 0 :(得分:2)

如果id上有唯一约束,则它们将完全相同。

如果没有唯一约束(我会在名为id的列中发现非常令人惊讶),那么哪个更好取决于您想要做什么:

  • 如果您要查找符合条件的所有行,请不要使用LIMIT
  • 如果您想找到符合条件的任意行(并且您不关心哪一行),请使用LIMIT 1

答案 1 :(得分:1)

即使您正在获取1条记录,也始终将LIMIT与select语句一起使用,因为它会加快查询速度。所以使用:

SELECT id,name,data FROM table WHERE id = X LIMIT 1

例如: 如果您的表中有1000条记录,而不是使用

SELECT id,name,data FROM table WHERE id = X

即使发现了id,也会遍历1000条记录 但是如果你像这样使用LIMIT

SELECT id,name,data FROM table WHERE id = X LIMIT 1

比找到第一条记录时停止执行。