## MySQL LIKE vs LOCATE: Manakah Lebih Cepat untuk Padanan Corak?

DDD
Lepaskan: 2024-10-25 01:52:30
asal
783 orang telah melayarinya

##  MySQL LIKE vs LOCATE: Which is Faster for Pattern Matching?

MySQL LIKE vs LOCATE: Mana Yang Lebih Cekap?

Apabila melakukan pertanyaan padanan corak dalam MySQL, anda mempunyai dua pilihan utama: LIKE operator dan fungsi LOCATE. Yang manakah berprestasi lebih cepat?

Untuk menjawab soalan ini, mari kita bandingkan prestasi kedua-dua pendekatan ini menggunakan penanda aras yang mudah. Pertanyaan berikut menggunakan operator LIKE untuk mencari baris di mana lajur mengandungi teks tertentu:

SELECT * FROM table WHERE column LIKE '%text%';
Salin selepas log masuk

Pertanyaan berikut menggunakan fungsi LOCATE untuk melaksanakan operasi yang sama:

SELECT * FROM table WHERE LOCATE('text',column)>0;
Salin selepas log masuk

Berjalan pertanyaan ini terhadap set data yang besar menunjukkan bahawa pengendali LIKE adalah sedikit lebih pantas, terutamanya kerana ia mengelakkan perbandingan tambahan (> 0) yang diperlukan oleh LOCATE. Berikut ialah hasil daripada penanda aras:

mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar'));
+---------------------------------------------+
| BENCHMARK(100000000,LOCATE('foo','foobar')) |
+---------------------------------------------+
|                                           0 |
+---------------------------------------------+
1 row in set (3.24 sec)

mysql> SELECT BENCHMARK(100000000,LOCATE('foo','foobar') > 0);
+-------------------------------------------------+
| BENCHMARK(100000000,LOCATE('foo','foobar') > 0) |
+-------------------------------------------------+
|                                               0 |
+-------------------------------------------------+
1 row in set (4.63 sec)


mysql> SELECT BENCHMARK(100000000,'foobar' LIKE '%foo%');
+--------------------------------------------+
| BENCHMARK(100000000,'foobar' LIKE '%foo%') |
+--------------------------------------------+
|                                          0 |
+--------------------------------------------+
1 row in set (4.28 sec)

mysql> SELECT @@version;
+----------------------+
| @@version            |
+----------------------+
| 5.1.36-community-log |
+----------------------+
1 row in set (0.01 sec)
Salin selepas log masuk

Atas ialah kandungan terperinci ## MySQL LIKE vs LOCATE: Manakah Lebih Cepat untuk Padanan Corak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!