MySQL性能 - 选择一行,我应该使用限制1吗?

时间:2017-04-03 15:30:24

标签: mysql database sqlperformance

我试图找出使用“限制1”在使用数百万条记录在MySQL数据库上执行“选择”查询时是否会更快地运行,例如:

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”只返回一行,我只想返回一个结果?

1 个答案:

答案 0 :(得分:0)

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