可用版本:Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

SQL: 不必要的 UNION 而不是 UNION ALL

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

UNION 操作符会移除重复行,而 UNION ALL 则会保留它们。优化器并不总是能够证明不可能存在重复项。 如果您作为开发人员知道 不可能存在任何重复项,或者如果您不关心重复项,甚至需要它们,那么最好始终使用 UNION ALL 而不是 UNION,因为这可以避免潜在的代价高昂的排序或哈希操作来删除重复项。

例如

SELECT 'Book' AS OBJECT_TYPE, ID FROM BOOK
UNION ALL -- No removal of duplicates necessary in this case
SELECT 'Author' AS OBJECT_TYPE, ID FROM AUTHOR;

反馈

您对此页面有任何反馈吗? 我们很乐意倾听!

The jOOQ Logo