UNION ALL vs. UNION (Kosten der Duplikatentfernung)
Verstehen Sie den Aufwand für die Duplikatentfernung durch UNION und warum UNION ALL schneller ist, wenn Sie wissen, dass keine Duplikate vorhanden sind.
UNION ALL vs. UNION (Kosten der Duplikatentfernung) ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Der Unterschied
UNION— kombiniert und entfernt DuplikateUNION ALL— kombiniert und behält jede Zeile
UNION ALL ist schneller
Das Entfernen von Duplikaten ist aufwendig (Sortierung oder Hashing). UNION ALL überspringt diesen Schritt vollständig. Wenn Sie wissen, dass es keine Duplikate geben kann, wählen Sie immer UNION ALL.
Beispiel: Wenn die Seiten disjunkt sind
Aktive und archivierte Bestellungen überschneiden sich nie — verwenden Sie UNION ALL:
SELECT * FROM active_orders
UNION ALL
SELECT * FROM archived_orders;Beispiel: Wenn Duplikate von Bedeutung sind
Beim Kombinieren einer Liste von Bestellereignissen mit möglicherweise wiederholten Zeilen möchten Sie vielleicht tatsächlich jedes Vorkommen zählen — UNION ALL.
SELECT order_id FROM email_events
UNION ALL
SELECT order_id FROM push_events;Beispiel: Wenn Sie Duplikate entfernen möchten
Zwei Newsletter-Listen, in denen einige E-Mail-Adressen in beiden vorkommen — Sie möchten eine Zeile pro eindeutiger E-Mail-Adresse:
SELECT email FROM list_a
UNION
SELECT email FROM list_b;UNION ALL mit unterschiedlichen Quellen
Stapeln Sie Metriktabellen für einen Feed mit „allen Berichten“:
SELECT 'login' AS event, ts, user_id FROM logins
UNION ALL
SELECT 'signup', ts, user_id FROM signups
UNION ALL
SELECT 'purchase', ts, user_id FROM purchases
ORDER BY ts DESC LIMIT 100;Reihenfolge innerhalb jedes Sub-SELECTs
Die meisten Datenbanken ignorieren ORDER BY innerhalb einzelner Sub-SELECTs eines UNION/UNION ALL (außer wenn diese in Klammern stehen). Wenden Sie ORDER BY am Ende an:
SELECT ... FROM a
UNION ALL
SELECT ... FROM b
ORDER BY ts DESC;LIMIT pro Seite
Schließen Sie jede Seite in Klammern ein, um LIMIT unabhängig anzuwenden:
(SELECT id FROM new_orders ORDER BY created_at DESC LIMIT 10)
UNION ALL
(SELECT id FROM old_orders ORDER BY created_at DESC LIMIT 10);Wann der Planer UNION optimiert
Wenn der Planer beweisen kann, dass die beiden Seiten disjunkt sind (z. B. durch sich gegenseitig ausschließende WHERE-Filter), kann er UNION intern als UNION ALL ausführen — verlassen Sie sich jedoch nicht darauf. Machen Sie es explizit.
UNION vs. OR
Bei OR-Bedingungen, die denselben Index nicht effizient nutzen können, kann UNION ALL aus zwei separat indexierten Abfragen schneller sein:
-- Slow OR (may not use either index):
SELECT * FROM users WHERE city = 'NYC' OR country = 'DE';
-- Sometimes faster:
SELECT * FROM users WHERE city = 'NYC'
UNION
SELECT * FROM users WHERE country = 'DE';Achten Sie auf die Spaltenreihenfolge
Set-Operatoren ordnen anhand der Position zu, NICHT anhand des Namens. SELECT a, b FROM t1 UNION ALL SELECT b, a FROM t2 vertauscht die semantische Zuordnung – seien Sie vorsichtig.
Zusammenfassung
UNION ALL ist aus Performance-Sicht die Standardwahl; verwenden Sie UNION nur, wenn Sie tatsächlich Duplikate entfernen müssen.
Kurztest
Wann können Sie UNION durch das schnellere UNION ALL ersetzen?
Häufig gestellte Fragen
Ist die Lektion „UNION ALL vs. UNION (Kosten der Duplikatentfernung)“ kostenlos?
Ja — der vollständige Text von „UNION ALL vs. UNION (Kosten der Duplikatentfernung)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „UNION ALL vs. UNION (Kosten der Duplikatentfernung)“?
Verstehen Sie den Aufwand für die Duplikatentfernung durch UNION und warum UNION ALL schneller ist, wenn Sie wissen, dass keine Duplikate vorhanden sind. Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um SQL Academy zu starten?
Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „UNION ALL vs. UNION (Kosten der Duplikatentfernung)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?
Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- UNION, INTERSECT, EXCEPT
- UNION ALL vs. UNION (Kosten der Duplikatentfernung)
- CASE-Ausdrücke und Pivot-Abfragen
- Crosstab-Muster (PostgreSQL crosstab())