2017-04-03 75 views
0

我试图找出是否使用“限制1”将工作速度更快,同时在执行上的MySQL数据库“选择”查询与记录milions,如:MySQL性能 - 选择一行,我应该使用限制1吗?

SELECT * FROM users where id = 99999; 

SELECT * FROM users where id = 99999 LIMIT 1; /* Is it faster? */ 

我做了一些测试,执行一些查询没有LIMIT,但它们之间的差别非常小(使用LIMIt有一些更好的速度寿),但我不确定在未索引列和索引列中使用“WHERE”之间是否存在差异,如果它会有一些性能问题或不。

我是否应该在所有查询中使用“LIMIT 1”,即使知道“WHERE id = 99999”只返回一行,我只想返回一个结果?

+0

因此,看起来像是如果我在索引列中使用where不重要,但它是使用LIMIT 1的“正常”列会更快吗? –

+0

似乎在任何情况下都会更快,但您只会在“id”不是唯一的大桌子上“感受”它 – Alex

回答

0

除了表现的问题,我总是在这种情况下使用LIMIT。原因:源代码的质量和可读性增加,因为读取代码已经确定只有一个返回值是预期的。如果它是一个不唯一的列,在我看来,LIMIT语句必须通过返回多个值来避免错误。