Cara JOIN dan WHERE Keadaan Mempengaruhi Prestasi Pertanyaan
Prestasi pertanyaan pangkalan data boleh dipengaruhi oleh penggunaan pernyataan JOIN dan LEFT JOIN, serta peletakan syarat WHERE.
JOIN lwn. LEFT JOIN
JOIN dan LEFT JOIN kedua-duanya digunakan untuk menggabungkan data daripada berbilang jadual. Walau bagaimanapun, perbezaan utama ialah JOIN hanya termasuk baris yang sepadan dalam kedua-dua jadual, manakala LEFT JOIN mengekalkan semua baris dari jadual kiri, walaupun mereka tidak mempunyai padanan dalam jadual kanan.
Dalam sesetengahnya kes, JOIN mungkin lebih cekap daripada LEFT JOIN. Contohnya, jika pertanyaan mempunyai banyak klausa WHERE yang menyemak nilai pada jadual kiri, menggunakan JOIN boleh menghalang perancang pertanyaan daripada mempertimbangkan baris yang tidak akan memenuhi syarat.
WHERE Syarat
WHERE keadaan juga boleh menjejaskan prestasi pertanyaan. Apabila menggunakan syarat WHERE dengan JOIN, adalah penting untuk meletakkannya dalam klausa ON, yang menentukan syarat gabungan. Ini memberitahu perancang pertanyaan baris mana yang perlu disertakan dalam cantuman.
Menggabungkan LEFT JOIN dengan keadaan WHERE pada jadual di sebelah kanan cantuman boleh mengubah gelagat pertanyaan. LEFT JOIN mengekalkan semua baris di sebelah kiri, walaupun tiada padanan di sebelah kanan. Jika syarat WHERE kemudiannya menyemak nilai bukan nol di sebelah kanan, ia secara berkesan menafikan LEFT JOIN dan mungkin menghasilkan pelan pertanyaan yang lebih perlahan.
Pertimbangan Tambahan
Dalam pertanyaan kompleks dengan berbilang JOIN, adalah penting untuk mempertimbangkan susunan jadual dicantumkan. Perancang pertanyaan mungkin mendapati lebih cekap untuk menyertai jadual dalam susunan tertentu dan ini boleh menjejaskan prestasi pertanyaan.
Postgres menggunakan "Pengoptimum Pertanyaan Generik" untuk menentukan pelan pertanyaan yang paling berkesan. Walau bagaimanapun, pertanyaan yang mengelirukan dengan LEFT JOIN yang mengelirukan boleh menyukarkan pengoptimum untuk mencari penyelesaian yang optimum.
Dengan menggunakan JOIN dan LEFT JOIN dengan sewajarnya dan meletakkan keadaan WHERE di lokasi yang betul, anda boleh mengoptimumkan prestasi pertanyaan pangkalan data anda
Atas ialah kandungan terperinci Bagaimana Menyertai, MENYERTAI KIRI, dan Klausa MANA Memberi Impak kepada Prestasi Pertanyaan Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!