mysql - EXISTS 是否比 COUNT(*)>0 更有效?

标签 mysql performance exists

我使用的是 MySQL 5.1,我有一个大致如下形式的查询:

select count(*) from mytable where a = "foo" and b = "bar";

在我的程序中,它唯一检查的是它是零还是非零。如果我将其转换为:

select exists(select * from mytable where a = "foo" and b = "bar");

MySQL 是否足够聪明,可以在搜索到第一个时停止搜索?或者是否有其他方式与 MySQL 交流,我的目的只是找出是否有任何记录与此匹配,而我不需要精确计数?

最佳答案

是的,当使用 Exists 函数返回一行时,MySQL(实际上是我所知道的所有数据库系统)将停止处理。

您可以在 MySQL 文档中阅读更多内容: If a subquery returns any rows at all, EXISTS subquery is TRUE.

关于mysql - EXISTS 是否比 COUNT(*)>0 更有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5264658/

相关文章:

c - 稀疏矩阵-矩阵乘法

objective-c - 如果 url 存在 Objective-c

mysql - 如何同步2个数据库中的产品库存。 Mysql和MSSQL实时

php - 在 Null 上调用成员函数 query()

php - img src 显示数据库中的错误用户

angular - 执行插值,即使 ChangeDetectorRef 已分离

mysql - 按月查找 MySQL 中的条目数

css - 背景 VS 背景颜色 : performance

mysql - slick 中存在查询

sql - 测试所有行是否存在