Rumah >pangkalan data >tutorial mysql >INSTR lwn. LIKE dalam MySQL: Manakah yang Lebih Cekap untuk Carian Rentetan?
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!