我试图找出使用“限制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”只返回一行,我只想返回一个结果?
答案 0 :(得分:0)
除了性能问题之外,在这种情况下我总是使用LIMIT。原因:源代码的质量和可读性增加,因为读取代码已经确定只需要一个返回值。如果它是一个不唯一的列,我认为LIMIT语句必须通过返回多个值来避免错误。