Prestasi MySQL: Klausa "IN" lwn. Sama (=) untuk Satu Nilai
Apabila melakukan pertanyaan SELECT dalam MySQL dengan WHERE klausa yang menapis dengan satu nilai, adalah wajar dipertimbangkan sama ada untuk menggunakan klausa "IN" atau pengendali yang sama (=). Soalan ini meneroka implikasi prestasi menggunakan setiap pendekatan.
Perbandingan Prestasi
Untuk menentukan kesan prestasi, kita boleh menganalisis hasil pernyataan EXPLAIN pada pertanyaan dengan kedua-duanya klausa "IN" dan pengendali yang sama. Berikut ialah keputusannya:
Pertanyaan dengan "=" 1:
Pertanyaan dengan "IN"(1):
Pertanyaan dengan "IN"(1,2,3):
Berdasarkan keputusan ini, kita boleh menyimpulkan bahawa MySQL mengoptimumkan klausa "IN" dengan satu nilai untuk melakukan yang sama seperti perbandingan yang sama. Khususnya, ia menggunakan imbasan indeks dan bukannya imbasan julat, menghasilkan prestasi yang lebih baik.
Kesimpulan
Untuk pertanyaan dengan klausa WHERE yang menapis mengikut satu nilai, kedua-dua klausa "IN" dan pengendali yang sama akan melakukan yang serupa. MySQL mengoptimumkan klausa "IN" untuk berkelakuan seperti perbandingan yang sama, memberikan tahap prestasi yang sama. Oleh itu, dalam kebanyakan kes, semakan tambahan tidak perlu dilakukan untuk menentukan sama ada bilangan nilai dalam senarai ialah 1, kerana perbezaan prestasi boleh diabaikan.
Atas ialah kandungan terperinci Adakah Klausa \'IN\' Cekap seperti \'=\' untuk Satu Nilai dalam Pertanyaan SELECT MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!