将 LIMIT
添加到 EXISTS
查询是否有任何性能优势,或者 MySQL 会自行应用限制?
例子:
IF EXISTS (
SELECT 1
FROM my_table
LIMIT 1 -- can this improve performance?
)
THEN ... END IF;
最佳答案
EXISTS()
的目的是只执行查询,直到它可以确定该表中是否有任何行匹配WHERE
子句。也就是说,它在逻辑上与 LIMIT 1
做同样的事情。 EXISTS
在某些圈子里可能被称为semi-join
。
底线:不要在 EXISTS()
中使用 LIMIT 1
。
附录:正如 Paul 所指出的,LIMIT
带有 OFFSET
(或 LIMIT m,n
)确实有意义。
关于mysql - 在 EXISTS 查询中使用 LIMIT 有什么意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34759173/