UNION ALL ve UNION Karşılaştırması (Tekilleştirme Maliyeti)
UNION'ın yaptığı tekilleştirme işlemini anlayın ve kopya olmadığını bildiğinizde UNION ALL'ın neden daha hızlı olduğunu öğrenin.
UNION ALL ve UNION Karşılaştırması (Tekilleştirme Maliyeti), CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.
Fark
UNION— birleştirir ve yinelenenleri kaldırırUNION ALL— birleştirir ve her satırı korur
UNION ALL Daha Hızlıdır
Yinelenenleri kaldırmak pahalıdır (sıralama veya karma oluşturma gerekir). UNION ALL bu işlemi tamamen atlar. Yinelenenlerin olamayacağını biliyorsanız her zaman UNION ALL'ı seçin.
Örnek: Her İki Taraf Ayrı Olduğunda
Etkin ve arşivlenmiş siparişler asla çakışmaz — UNION ALL kullanın:
SELECT * FROM active_orders
UNION ALL
SELECT * FROM archived_orders;Örnek: Yinelenenler Önemli Olduğunda
Olası yinelenen satırlar içeren bir sipariş olayları listesini birleştirme: her oluşumu gerçekten saymak isteyebilirsiniz — UNION ALL.
SELECT order_id FROM email_events
UNION ALL
SELECT order_id FROM push_events;Örnek: Yinelenenleri Kaldırmak İstediğinizde
Bazı e-postaların her iki listede de bulunduğu iki bülten listesini birleştirme — her benzersiz e-posta için tek satır istersiniz:
SELECT email FROM list_a
UNION
SELECT email FROM list_b;Farklı Kaynaklarla UNION ALL
"Tüm raporlar" akışı için ölçüm tablolarını üst üste ekleyin:
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;Her Alt SELECT İçindeki Sıra
Çoğu veritabanı, bir UNION/UNION ALL işleminin tek tek alt SELECT sorgularındaki ORDER BY'ı (sarmalanmadığı sürece) yok sayar. ORDER BY'ı sona uygulayın:
SELECT ... FROM a
UNION ALL
SELECT ... FROM b
ORDER BY ts DESC;Taraf Başına LIMIT
Her taraf için bağımsız olarak LIMIT uygulamak üzere tarafları parantez içine alın:
(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);Planlayıcı UNION'ı İyileştirdiğinde
Planlayıcı iki tarafın ayrık olduğunu kanıtlayabilirse (ör. birbirini dışlayan WHERE filtreleri), UNION'ı dahili olarak UNION ALL şeklinde çalıştırabilir — ancak buna güvenmeyin. Açıkça belirtin.
UNION ve OR
Aynı dizini verimli biçimde kullanamayan OR koşulları için, ayrı ayrı dizinlenen iki sorgunun UNION ALL ile birleştirilmesi daha hızlı olabilir:
-- 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';Sütun Sırasına Dikkat Edin
Küme işleçlerinde eşleşme ada göre değil, konuma göredir (NOT). SELECT a, b FROM t1 UNION ALL SELECT b, a FROM t2 anlamsal olarak sütunların yerini değiştirir — dikkatli olun.
Özet
Performans için varsayılan olarak UNION ALL kullanın; yalnızca gerçekten yinelenenleri kaldırmanız gerektiğinde UNION tercih edin.
Hızlı Kontrol
Daha hızlı olan UNION ALL ile UNION'ı ne zaman değiştirebilirsiniz?
Sıkça Sorulan Sorular
“UNION ALL ve UNION Karşılaştırması (Tekilleştirme Maliyeti)” dersi ücretsiz mi?
Evet — “UNION ALL ve UNION Karşılaştırması (Tekilleştirme Maliyeti)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.
“UNION ALL ve UNION Karşılaştırması (Tekilleştirme Maliyeti)” dersinde ne öğreneceğim?
UNION'ın yaptığı tekilleştirme işlemini anlayın ve kopya olmadığını bildiğinizde UNION ALL'ın neden daha hızlı olduğunu öğrenin. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
SQL Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“UNION ALL ve UNION Karşılaştırması (Tekilleştirme Maliyeti)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- UNION, INTERSECT, EXCEPT
- UNION ALL ve UNION Karşılaştırması (Tekilleştirme Maliyeti)
- CASE İfadeleri ve Özet Tablo Sorguları
- Çapraz Tablo Kalıpları (PostgreSQL crosstab())