Rumah >pangkalan data >tutorial mysql >INSTR lwn. LIKE dalam MySQL: Fungsi Padanan Rentetan Manakah yang Lebih Cepat?

INSTR lwn. LIKE dalam MySQL: Fungsi Padanan Rentetan Manakah yang Lebih Cepat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-25 06:24:19629semak imbas

INSTR vs. LIKE in MySQL: Which String Matching Function is Faster?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn