NOT EXISTS
, NOT IN
dan LEFT JOIN WITH IS NULL
pertanyaan pangkalan data, NOT EXISTS
, NOT IN
dan LEFT JOIN WHERE IS NULL
boleh mencapai fungsi yang serupa, tetapi perbezaan halusnya akan menjejaskan kecekapan pertanyaan.
NOT IN
lwn. NOT EXISTS
NOT IN
Membandingkan nilai dengan senarai nilai lain dan jika nilai itu tiada dalam senarai, syarat menjadi benar. Tidak seperti NOT IN
, NOT EXISTS
ialah subkueri yang menyemak sama ada mana-mana baris dalam subkueri sepadan dengan keadaan dan mengembalikan benar jika tiada padanan.
LEFT JOIN WITH IS NULL
LEFT JOIN
Gabungkan data daripada dua jadual dengan memadankan baris berdasarkan lajur biasa. Jika tiada baris yang sepadan dalam jadual yang betul, nilai NULL
ditambahkan pada hasil carian. WHERE IS NULL
menapis keluar baris dengan nilai NULL
dalam lajur gabungan, dengan berkesan menghasilkan hasil yang serupa dengan NOT IN
atau NOT EXISTS
.
Perbezaan Prestasi
Prestasi teknik ini bergantung pada pelaksanaan khusus pangkalan data:
LEFT JOIN WHERE IS NULL
kurang cekap daripada NOT IN
atau NOT EXISTS
. NOT IN
kurang cekap daripada NOT EXISTS
atau LEFT JOIN WHERE IS NULL
. NOT EXISTS
kurang cekap sedikit daripada NOT IN
atau LEFT JOIN WHERE IS NULL
. Pilih teknologi yang betul
Teknologi yang manakah untuk dipilih bergantung pada keperluan pertanyaan khusus:
NOT IN
harus diutamakan. NOT EXISTS
LEFT JOIN WHERE IS NULL
Atas ialah kandungan terperinci Apakah Teknik Terbaik: `TIDAK WUJUD`, `TIDAK MASUK` atau `LEFT JOIN WITH IS NULL` untuk Pertanyaan Pangkalan Data yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!