Rumah >pangkalan data >tutorial mysql >INSTR lwn. LIKE dalam MySQL: Fungsi Padanan Rentetan Manakah yang Lebih Cepat?
Perbandingan Prestasi INSTR dan LIKE untuk Padanan Rentetan MySQL
Dalam MySQL, apabila mencari rentetan dalam lajur, dua kaedah biasa ialah INSTR dan LIKE. Yang manakah lebih pantas dan lebih cekap?
INSTR lwn LIKE
INSTR(nama ruangan, 'mystring') > 0 mengembalikan benar jika 'mystring' ditemui dalam nama lajur, manakala nama lajur SEPERTI '%mystring%' mengembalikan benar jika 'mystring' ditemui di mana-mana dalam nama lajur. Kedua-dua INSTR dan LIKE disokong untuk lajur rentetan jenis 'varchar', 'text', 'blob', dsb.
Ujian Prestasi
Dalam ujian, mengira kejadian 'carian' dalam jadual dengan lebih 40,000 baris, kedua-dua INSTR dan LIKE dilakukan secara sama, mengambil kira-kira 5.54 detik. Walau bagaimanapun, apabila menggunakan LIKE dengan hanya kad bebas akhiran, seperti 'search%', pertanyaan adalah jauh lebih pantas, mengambil masa hanya 3.88 saat.
Carian Teks Penuh
Walaupun tidak disebut secara khusus dalam soalan asal, perlu diperhatikan bahawa carian FULLTEXT biasanya lebih pantas untuk pertanyaan berasaskan teks. Walau bagaimanapun, ia memerlukan penggunaan indeks khusus dan tidak selalunya sesuai untuk semua senario.
Kesimpulan
Untuk imbasan jadual penuh, INSTR dan LIKE dengan kedua-dua awalan dan kad bebas akhiran berprestasi serupa. Walau bagaimanapun, apabila mencari rentetan pada permulaan lajur teks, LIKE dengan kad bebas akhiran menjadi lebih cekap. Dalam kes di mana prestasi adalah kritikal, memandangkan penggunaan carian teks penuh mungkin memberikan hasil yang terbaik.
Atas ialah kandungan terperinci INSTR lwn. LIKE dalam MySQL: Fungsi Padanan Rentetan Manakah yang Lebih Cepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!