COUNT(*)标量子查询比较
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
当比较计算 COUNT(*) 的 标量子查询 与单个值时,更弱的优化器可能更喜欢等效的 EXISTS 谓词,如 这篇关于 COUNT(*) vs EXISTS 的博客文章 中所示。
此转换仅在特定情况下应用,包括
- 在没有
UNION
和其他集合操作的情况下 - 在没有
GROUP BY
和HAVING
的情况下 - 仅适用于
COUNT(*)
,不适用于COUNT(expr)
(有关这种情况,请参阅 COUNT(expr) 标量子查询比较)
使用 Settings.transformPatternsScalarSubqueryCountAsteriskGtZero
,可以实现以下转换
-- With Settings.transformPatternsScalarSubqueryCountAsteriskGtZero active, this: SELECT (SELECT COUNT(*) FROM tab) > 0; -- ... is transformed into the equivalent expression: SELECT EXISTS (SELECT 1 FROM tab);
反馈
您对此页面有任何反馈吗? 我们很乐意听取您的意见!