Rumah > pangkalan data > tutorial mysql > ## MySQL LIKE vs LOCATE: Manakah Lebih Cepat untuk Padanan Corak?

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

DDD
Lepaskan: 2024-10-25 01:52:30
asal
957 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!

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