0Pricing
SQL Academy · Pelajaran

UNION ALL vs UNION (Biaya Deduplicasi)

Pahami pekerjaan deduplikasi yang dilakukan UNION dan alasan UNION ALL lebih cepat ketika Anda tahu tidak ada duplikat.

UNION ALL vs UNION (Biaya Deduplicasi) adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

Perbedaannya

  • UNION — menggabungkan dan menghapus duplikat
  • UNION ALL — menggabungkan dan mempertahankan setiap baris

UNION ALL Lebih Cepat

Penghapusan duplikat membutuhkan biaya besar (pengurutan atau hash). UNION ALL melewati proses tersebut sepenuhnya. Jika Anda tahu bahwa tidak mungkin ada duplikat, selalu pilih UNION ALL.

Contoh: Ketika Kedua Sisi Tidak Saling Tumpang Tindih

Pesanan aktif dan yang diarsipkan tidak pernah tumpang tindih — gunakan UNION ALL:

SELECT * FROM active_orders
UNION ALL
SELECT * FROM archived_orders;

Contoh: Ketika Duplikat Penting

Menggabungkan daftar peristiwa pesanan yang mungkin memiliki baris berulang: mungkin Anda memang ingin menghitung setiap kemunculan — gunakan UNION ALL.

SELECT order_id FROM email_events
UNION ALL
SELECT order_id FROM push_events;

Contoh: Ketika Anda Ingin Menghapus Duplikat

Dua daftar buletin yang beberapa alamat surelnya muncul di keduanya — Anda ingin satu baris untuk setiap alamat surel unik:

SELECT email FROM list_a
UNION
SELECT email FROM list_b;

UNION ALL dengan Sumber Berbeda

Susun tabel metrik untuk umpan "semua laporan":

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;

Urutan di Dalam Setiap Sub-SELECT

Sebagian besar basis data mengabaikan ORDER BY di dalam sub-SELECT individual pada UNION/UNION ALL (kecuali dibungkus). Terapkan ORDER BY di bagian akhir:

SELECT ... FROM a
UNION ALL
SELECT ... FROM b
ORDER BY ts DESC;

LIMIT per Sisi

Bungkus setiap sisi dengan tanda kurung untuk menerapkan LIMIT secara terpisah:

(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);

Ketika Perencana Mengoptimalkan UNION

Jika perencana dapat membuktikan bahwa kedua sisi tidak saling tumpang tindih (misalnya karena penyaring WHERE yang saling eksklusif), perencana mungkin menjalankan UNION sebagai UNION ALL secara internal — tetapi jangan mengandalkannya. Nyatakan pilihan Anda secara eksplisit.

UNION dibandingkan OR

Untuk kondisi OR yang tidak dapat menggunakan indeks yang sama secara efisien, UNION ALL dari dua kueri dengan indeks terpisah dapat berjalan lebih cepat:

-- 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';

Perhatikan Urutan Kolom

Operator himpunan mencocokkan berdasarkan posisi, bukan nama. SELECT a, b FROM t1 UNION ALL SELECT b, a FROM t2 menukar makna kolom — berhati-hatilah.

Ringkasan

UNION ALL adalah pilihan bawaan untuk kinerja; gunakan UNION hanya jika Anda benar-benar memerlukan deduplikasi.

Pemeriksaan Singkat

Kapan Anda dapat mengganti UNION dengan UNION ALL yang lebih cepat?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “UNION ALL vs UNION (Biaya Deduplicasi)” gratis?

Ya — teks lengkap “UNION ALL vs UNION (Biaya Deduplicasi)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “UNION ALL vs UNION (Biaya Deduplicasi)”?

Pahami pekerjaan deduplikasi yang dilakukan UNION dan alasan UNION ALL lebih cepat ketika Anda tahu tidak ada duplikat. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “UNION ALL vs UNION (Biaya Deduplicasi)” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. UNION, INTERSECT, EXCEPT
  2. UNION ALL vs UNION (Biaya Deduplicasi)
  3. Ekspresi CASE dan Kueri Pivot
  4. Pola Crosstab (PostgreSQL crosstab())
← Kembali ke SQL Academy