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!