Apabila menguji kewujudan rentetan dalam lajur MySQL dengan panjang aksara berubah-ubah, timbul persoalan mengenai kaedah optimum untuk digunakan untuk kecekapan dan kelajuan. Dua pendekatan biasa ialah:
1. INSTR(columnname, 'mystring' ) > 0
2. columnname LIKE '%mystring%'
Dari segi kelajuan, ujian kami mendedahkan hasil yang mengejutkan: kedua-dua INSTR dan LIKE menunjukkan prestasi yang sama apabila menyemak kewujudan subrentetan. Contohnya:
INSTR(Name,'search') > 0 LIKE '%search%'
Kedua-dua pertanyaan mengimbas keseluruhan jadual dan mengambil masa kira-kira 5.54 saat untuk diselesaikan. Walau bagaimanapun, apabila melakukan carian awalan pada lajur diindeks, pengendali LIKE dengan hanya kad bebas akhiran mengatasi INSTR dengan ketara:
LIKE 'search%'
Carian awalan yang dioptimumkan ini mengambil masa hanya 3.88 saat.
Selain INSTR dan LIKE, MySQL juga menyokong carian FULLTEXT untuk prestasi yang lebih baik. Walau bagaimanapun, carian ini paling berkesan apabila lajur jadual diindeks dengan FULLTEXT dan rentetan yang anda cari muncul berhampiran permulaan lajur.
Dalam amalan, pilihan antara INSTR dan LIKE bergantung pada kes penggunaan tertentu:
Atas ialah kandungan terperinci INSTR lwn. LIKE dalam MySQL: Kaedah Padanan Rentetan Mana Yang Lebih Cepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!