Meningkatkan Kecekapan Carian MySQL dengan "LIKE" dan Wildcards
Masalah: Pertanyaan seperti "SELECT * FROM sometable DI MANA sesuatu medan SEPERTI '%value%'" tidak cekap disebabkan oleh penggunaan indeks yang menghalang kad bebas terkemuka.
Penyelesaian: Pengindeksan Tatasusunan Akhiran
Untuk rentetan yang agak pendek, pertimbangkan untuk menyimpan semua kemungkinan akhiran setiap perkataan dalam pangkalan data. Sebagai contoh, untuk perkataan "nilai", kami akan menyimpan:
value alue lue ue e
Dengan menyimpan akhiran, kami menghapuskan kad bebas utama, membolehkan penggunaan indeks untuk carian subrentetan pantas.
Kos Penyimpanan:
Ruang storan yang diperlukan untuk menyimpan akhiran meningkat secara kuadratik dengan panjang rentetan. Contohnya:
Pertimbangan:
Atas ialah kandungan terperinci Bagaimanakah Pengindeksan Tatasusunan Suffix Boleh Meningkatkan Pertanyaan 'SUKA' MySQL dengan Kad Liar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!