Meningkatkan kecekapan pertanyaan MySQL: Mengoptimumkan bilangan item dalam klausa IN
Klausa IN MySQL membolehkan anda menentukan senarai nilai dalam pertanyaan untuk menapis baris. Walau bagaimanapun, mengoptimumkan penggunaannya adalah penting untuk prestasi pertanyaan.
Perbandingan subkueri dan rentetan ID
Menyimpan rentetan subquery dalam pembolehubah dan memasukkannya secara dinamik ke dalam pertanyaan luar boleh menjadi tidak cekap. Sebaliknya, adalah lebih cekap untuk menyimpan ID pengguna sebenar sebagai rentetan nilai yang dipisahkan koma. Pendekatan ini menghapuskan overhed untuk melaksanakan subquery berulang kali.
Penghadan bilangan istilah dalam klausa IN
Menurut dokumentasi MySQL, bilangan nilai dalam senarai IN dihadkan hanya oleh nilai max_allowed_packet. Pembolehubah ini mengawal saiz maksimum paket rangkaian yang boleh dikendalikan oleh MySQL. Nilai lalai ialah 4MB, membenarkan sejumlah besar item dalam klausa IN.
Kelebihan prestasi menggunakan rentetan ID
Menapis baris dalam klausa IN menggunakan rentetan ID pengguna sebenar dan bukannya subkueri boleh meningkatkan prestasi dengan:
Ringkasan
Menapis baris dalam klausa IN menggunakan rentetan ID pengguna sebenar boleh meningkatkan prestasi pertanyaan dengan ketara berbanding subkueri. Dengan mengelakkan pelaksanaan subkueri yang tidak perlu dan memanfaatkan indeks, pertanyaan luar boleh dilaksanakan dengan lebih cekap, dengan itu mengoptimumkan pengambilan semula data yang berkaitan.
Atas ialah kandungan terperinci Berapa Banyak Item Perlu Ada dalam Klausa MySQL IN untuk Prestasi Optimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!