Maison >base de données >tutoriel mysql >## MySQL LIKE vs LOCATE : lequel est le plus rapide pour la correspondance de modèles ?
MySQL LIKE vs LOCATE : lequel est le plus efficace ?
Lorsque vous effectuez des requêtes de correspondance de modèles dans MySQL, vous disposez de deux options principales : le LIKE opérateur et la fonction LOCATE. Laquelle est plus rapide ?
Pour répondre à cette question, comparons les performances de ces deux approches à l’aide d’un simple benchmark. La requête suivante utilise l'opérateur LIKE pour rechercher les lignes où une colonne contient un texte spécifique :
SELECT * FROM table WHERE column LIKE '%text%';
La requête suivante utilise la fonction LOCATE pour effectuer la même opération :
SELECT * FROM table WHERE LOCATE('text',column)>0;
En cours d'exécution Ces requêtes sur un grand ensemble de données montrent que l'opérateur LIKE est légèrement plus rapide, principalement parce qu'il évite la comparaison supplémentaire (> 0) requise par LOCATE. Voici les résultats d'un benchmark :
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)
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!