Rumah  >  Artikel  >  pangkalan data  >  ## SUKA vs LOCATE dalam MySQL: Pengendali manakah yang menjadi Raja untuk Prestasi?

## SUKA vs LOCATE dalam MySQL: Pengendali manakah yang menjadi Raja untuk Prestasi?

Linda Hamilton
Linda Hamiltonasal
2024-10-25 03:18:02874semak imbas

##  LIKE vs LOCATE in MySQL: Which Operator is King for Performance?

MySQL LIKE vs LOCATE Perbandingan Prestasi

Apabila mencari data dalam MySQL, anda mungkin tertanya-tanya operator mana yang lebih cekap: LIKE atau LOCATE? Artikel ini meneroka perbezaan prestasi antara kedua-dua operator ini.

Dalam senario penggunaan biasa, LIKE lebih pantas sedikit daripada LOCATE. Ini disebabkan terutamanya oleh fakta bahawa LIKE tidak melakukan perbandingan tambahan terhadap 0 yang LOCATE lakukan.

Seperti yang digambarkan oleh hasil penanda aras di bawah, LIKE secara konsisten menunjukkan prestasi yang lebih baik sedikit daripada LOCATE untuk sejumlah besar lelaran:

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)

Perlu ambil perhatian bahawa keputusan ini mungkin berbeza-beza bergantung pada versi pangkalan data tertentu dan saiz serta kandungan jadual yang anda cari. Walau bagaimanapun, secara amnya, LIKE dianggap sebagai pengendali yang lebih cekap untuk carian kad bebas.

Atas ialah kandungan terperinci ## SUKA vs LOCATE dalam MySQL: Pengendali manakah yang menjadi Raja untuk Prestasi?. 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