LIMIT 1是否有任何性能提升?

时间:2011-10-17 19:06:47

标签: mysql performance limit crud

查询后追加LIMIT 1是否会提升性能?

...如果只有一个可能的条目匹配(主键的WHERE子句)?

SELECT `x`
FROM `unicorns`
WHERE `id` = 123
LIMIT 1

......相同,但现在是DELETE

DELETE FROM `unicorns`
WHERE `id` = 123
LIMIT 1

...和UPDATE

UPDATE `unicorns`
SET `rainbows` = `rainbows` + 1
WHERE `id` = 123
LIMIT 1

P.S。列id是主键,因此它是唯一的。

感谢您的建议!

2 个答案:

答案 0 :(得分:4)

这取决于您是否有列索引

DELETE FROM `unicorns` WHERE `id` = 123 LIMIT 1
如果id是主键,

是没有意义的,但是

DELETE FROM `unicorns` WHERE `noindexoclumn` = 123 LIMIT 1

将提供你的性能提升

答案 1 :(得分:0)

它将提升性能,因为DB只会启动满足查询条件的行的提取。但是在更新时,有什么意义呢?特别是如果你在主键上进行完全匹配 - 你只需要匹配一行开头,所以没有必要说“更新表中的这一行,但只更新一行”最”。