MySQL LIKE vs LOCATE: Mana Berprestasi Lebih Baik?
Pertanyaan pangkalan data selalunya melibatkan pencarian istilah khusus dalam lajur jadual. Dua operator biasa yang digunakan untuk tujuan ini ialah LIKE dan LOCATE. Artikel ini bertujuan untuk menentukan pengendali yang menawarkan prestasi yang lebih baik apabila melakukan carian sedemikian.
LIKE vs LOCATE
Pengendali LIKE menggunakan aksara kad bebas (%) untuk memadankan sebarang bilangan watak. Sebaliknya, pengendali LOCATE mengambil rentetan dan mengembalikan kedudukan kejadian pertamanya dalam lajur.
Perbandingan Prestasi
Tanda aras telah menunjukkan bahawa pengendali LIKE biasanya berprestasi sedikit lebih pantas daripada LOCATE. Ini terutamanya kerana LIKE tidak memerlukan perbandingan tambahan ("> 0") untuk menentukan sama ada perlawanan itu sah.
Keputusan Penanda Aras
Menggunakan ujian penanda aras dengan 100 juta lelaran, perbandingan prestasi menghasilkan keputusan berikut:
Operator | Time (seconds) |
---|---|
LOCATE (without comparison) | 3.24 |
LOCATE (with comparison) | 4.63 |
LIKE | 4.28 |
Kesimpulan
Walaupun perbezaan prestasi antara LIKE dan LOCATE adalah sedikit, LIKE muncul sebagai pilihan yang lebih cekap untuk carian subrentetan. Kelebihan ini berpunca daripada keupayaannya untuk mengelakkan perbandingan tambahan yang diperlukan dengan LOCATE. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa penanda aras ini mungkin berbeza-beza bergantung pada versi pangkalan data dan saiz jadual tertentu.
Atas ialah kandungan terperinci ## SUKA vs LOCATE dalam MySQL: Manakah yang Lebih Cepat untuk Carian Substring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!