Rumah >pangkalan data >tutorial mysql >JOIN lwn. LEFT JOIN: Bilakah Klausa WHERE Memberi Impak kepada Prestasi?
JOIN lwn. LEFT JOIN Prestasi dengan WHERE Conditions
SERTAI dan LEFT JOIN ialah dua jenis gabungan SQL biasa yang boleh digunakan untuk mendapatkan semula data daripada berbilang jadual. Pilihan gabungan untuk digunakan boleh memberi kesan kepada prestasi pertanyaan, terutamanya apabila digunakan dengan keadaan WHERE.
SERTAI
Operasi JOIN menggabungkan baris daripada dua atau lebih jadual berdasarkan nilai yang sepadan dalam lajur biasa. Ia hanya mengembalikan baris yang mempunyai nilai yang sepadan dalam semua jadual yang digabungkan.
LEFT JOIN
LEFT JOIN juga menggabungkan baris daripada berbilang jadual, tetapi ia mengekalkan semua baris daripada jadual sebelah kiri, walaupun tiada baris yang sepadan dalam jadual lain. Ia mengembalikan nilai nol untuk medan kosong dalam jadual sebelah kanan.
Implikasi Prestasi Syarat WHERE
Menurut dokumentasi PostgreSQL, syarat WHERE dan syarat JOIN berfungsi secara fungsional setara dalam PostgreSQL untuk operasi INNER JOIN. Menggunakan syarat JOIN yang jelas lebih diutamakan untuk kebolehbacaan dan kebolehselenggaraan.
Walau bagaimanapun, menggunakan LEFT JOIN dengan keadaan WHERE pada jadual di sebelah kanan cantuman boleh menjejaskan prestasi. LEFT JOIN mengekalkan semua baris di sebelah kiri, bermakna jika baris di sebelah kanan tidak sepadan, ia akan tetap dikembalikan dengan nilai nol.
Memohon syarat WHERE yang memerlukan nilai bukan nol dalam lajur jadual sebelah kanan boleh menafikan kesan LEFT JOIN dan pada asasnya menukarnya kepada INNER JOIN. Ini boleh menyebabkan pelan pertanyaan yang lebih mahal disebabkan semakan NULL tambahan yang diperlukan.
Dalam pertanyaan dengan berbilang jadual bercantum, pengoptimum mesti menentukan urutan yang paling cekap untuk menyertainya. Menggunakan LEFT JOIN dengan keadaan WHERE yang menutupi maksud sebenar pertanyaan boleh mengelirukan pengoptimum dan membawa kepada prestasi suboptimum.
Amalan Terbaik
Untuk mengelakkan potensi prestasi isu dan mengekalkan kebolehbacaan pertanyaan, amalan terbaik berikut disyorkan:
Dengan mengikut garis panduan ini, pembangun boleh mengoptimumkan prestasi SQL mereka pertanyaan yang melibatkan syarat JOIN dan WHERE.
Atas ialah kandungan terperinci JOIN lwn. LEFT JOIN: Bilakah Klausa WHERE Memberi Impak kepada Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!