Comparaison des performances MySQL LIKE et 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. Cependant, en général, LIKE est considéré comme l'opérateur le plus efficace pour les recherches par caractères génériques.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3