Comparaison des performances MySQL LIKE vs LOCATE
Lors de la recherche de données dans MySQL, vous vous demandez peut-être quel opérateur est le plus efficace : LIKE ou LOCATE ? Cet article explore les différences de performances entre ces deux opérateurs.
Dans un scénario d'utilisation typique, LIKE est légèrement plus rapide que LOCATE. Cela est principalement dû au fait que LIKE n'effectue pas la comparaison supplémentaire par rapport à 0 comme le fait LOCATE.
Comme l'illustrent les résultats de référence ci-dessous, LIKE fonctionne systématiquement légèrement mieux que LOCATE pour un grand nombre d'itérations :
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)
Il est important de noter que ces résultats peuvent varier en fonction de la version spécifique de la base de données ainsi que de la taille et du contenu de la table que vous recherchez. En général, cependant, LIKE est considéré comme l'opérateur le plus efficace pour les recherches par caractères génériques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!