Rumah >pangkalan data >tutorial mysql >INSTR lwn. LIKE dalam MySQL: Manakah yang Lebih Cekap untuk Carian Rentetan?

INSTR lwn. LIKE dalam MySQL: Manakah yang Lebih Cekap untuk Carian Rentetan?

DDD
DDDasal
2024-11-20 02:29:01759semak imbas

INSTR vs. LIKE in MySQL: Which is More Efficient for String Searching?

Perbandingan Prestasi: INSTR lwn. LIKE

Apabila ia datang untuk mencari rentetan dalam lajur MySQL jenis 'varchar', ' text', 'blob', dsb., kaedah manakah yang lebih cekap: INSTR(columnname, 'mystring') > 0 atau nama lajur SUKA '%mystring%'?

Jawapannya

Carian FULLTEXT menawarkan prestasi terbaik. Walau bagaimanapun, apabila membandingkan INSTR dan LIKE, kedua-dua kaedah menunjukkan prestasi yang sama dalam imbasan jadual penuh biasa yang tidak diindeks.

Perbandingan Terperinci

Dalam ujian yang dijalankan oleh pengarang, INSTR dan LIKE dilakukan sama rata. Walau bagaimanapun, apabila melakukan carian awalan pada lajur diindeks menggunakan LIKE dengan hanya kad bebas akhiran (cth., nama lajur LIKE 'cari%'), ia mengatasi prestasi INSTR dengan ketara.

Pelaksanaan

Kedua-dua INSTR dan LIKE mengimbas lajur dari kiri ke kanan, membandingkan rentetan carian dengan data yang disimpan. INSTR mencari padanan tepat, manakala LIKE membenarkan aksara kad bebas (% dan _) untuk padanan separa.

Pengesyoran

Untuk lajur diindeks yang tidak memerlukan padanan awalan, INSTR dan LIKE adalah kedua-dua pilihan berdaya maju dengan prestasi yang serupa. Walau bagaimanapun, apabila berurusan dengan jadual tidak diindeks atau mencari akhiran sahaja, LIKE dengan kad bebas akhiran disyorkan untuk mendapatkan hasil yang lebih pantas.

Atas ialah kandungan terperinci INSTR lwn. LIKE dalam MySQL: Manakah yang Lebih Cekap untuk Carian Rentetan?. 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