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;
反馈
您对此页面有任何反馈吗? 我们很乐意倾听!