mysql - 在 EXISTS 查询中使用 LIMIT 有什么意义吗?

标签 mysql query-optimization exists sql-limit

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/

相关文章:

java - 当使用 json 进行实体解析时,hibernate 部分更新

mysql - 连接 ~3 个表,并在仅为一张表设置 GROUP BY 之前按 ORDER BY DESC 进行排序

MySQL WHERE EXISTS 对所有记录评估为真

c++ - 如何检查文件是否存在并且在 C++ 中是否可读?

php - 如何匹配mysql查询中的正则表达式?

php - MySQL、JSON 和 Fullcalendar

sql - 列与行存储索引?

mysql - 如果我们定义的列长度超过要求会怎样?

MySQL显示查询中使用的索引

python - 检查另一个字符串中是否存在多个字符串