Pendekatan manakah yang Terbaik untuk Memilih Baris Hadir dalam Satu Jadual Tetapi Bukan Satu Jadual Lain: \'TIDAK WUJUD\' atau \'LEFT JOIN\'?

Mary-Kate Olsen
Lepaskan: 2024-10-26 12:01:02
asal
181 orang telah melayarinya

Which Approach is Best for Selecting Rows Present in One Table But Not Another:

Mengoptimumkan "Mysql pilih di mana tiada dalam jadual" untuk Mendapatkan Data Cekap

Apabila berurusan dengan dua jadual (A dan B) dengan primer yang sama kekunci, tugas memilih baris yang ada dalam A tetapi tiada dalam B timbul biasa. Pendekatan standard, menggunakan klausa "TIDAK WUJUD", mengalami had prestasi.

Tidak Wujud lwn. Sertai Kiri

Pertanyaan "TIDAK WUJUD" yang anda sebutkan menyemak kerana ketiadaan baris yang sepadan dalam B untuk setiap baris dalam A. Proses ini, yang dikenali sebagai anti-cantum, boleh menjadi tidak cekap untuk set data yang besar. Sebaliknya, pendekatan gabungan kiri yang anda cadangkan mencari nilai nol dalam lajur B.y untuk setiap baris dalam A. Ini boleh menjadi penyelesaian yang lebih berkesan.

Ungkapan Pertanyaan Yang Diperbaiki

Walau bagaimanapun, terdapat peningkatan kecil yang boleh dibuat pada pertanyaan penyertaan kiri anda:

SELECT A.*    
FROM A LEFT JOIN B ON A.x = B.y
WHERE B.y IS NULL
Salin selepas log masuk

Dengan memilih secara eksplisit hanya lajur daripada jadual A (A.*), anda mengoptimumkan pertanyaan dengan mengambil hanya yang diperlukan data.

Kesimpulan

Walaupun klausa "TIDAK WUJUD" kekal sebagai pilihan yang berdaya maju untuk set data kecil, pendekatan gabungan kiri dengan ungkapan pertanyaan yang dipertingkat memberikan prestasi yang lebih baik untuk yang lebih besar volum data. Ini membolehkan anda mendapatkan semula baris yang wujud dalam jadual A dengan cekap tetapi tidak dalam jadual B.

Atas ialah kandungan terperinci Pendekatan manakah yang Terbaik untuk Memilih Baris Hadir dalam Satu Jadual Tetapi Bukan Satu Jadual Lain: \'TIDAK WUJUD\' atau \'LEFT JOIN\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!