查询后追加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
是主键,因此它是唯一的。
感谢您的建议!
答案 0 :(得分:4)
这取决于您是否有列索引
DELETE FROM `unicorns` WHERE `id` = 123 LIMIT 1
如果id是主键,是没有意义的,但是
DELETE FROM `unicorns` WHERE `noindexoclumn` = 123 LIMIT 1
将提供你的性能提升
答案 1 :(得分:0)
它将提升性能,因为DB只会启动满足查询条件的行的提取。但是在更新时,有什么意义呢?特别是如果你在主键上进行完全匹配 - 你只需要匹配一行开头,所以没有必要说“更新表中的这一行,但只更新一行”最”。