UNION ALL is faster than UNION because it doesn't eliminate duplicates. UNION performs a sort to identify and remove duplicate rows, which adds overhead. Use UNION ALL when you don't need deduplication.
UNION ALL simply concatenates the result sets of the combined queries without checking for duplicates, so it avoids the extra sort/comparison overhead needed to eliminate duplicate rows. UNION, by contrast, must remove duplicates, which typically requires an implicit sort or hash operation, making it slower than UNION ALL on the same data.