Comparaison des performances : INSTR vs LIKE
Lorsqu'il s'agit de rechercher une chaîne dans une colonne MySQL de type 'varchar', ' text', 'blob', etc., quelle méthode est la plus efficace : INSTR(columnname, 'mystring') > 0 ou nom de colonne LIKE '%mystring%' ?
La réponse
Les recherches FULLTEXT offrent les meilleures performances. Cependant, lorsque l'on compare INSTR et LIKE, les deux méthodes fonctionnent de manière identique dans les analyses régulières de tables complètes non indexées.
Comparaison détaillée
Dans les tests menés par l'auteur, INSTR et LIKE ont joué à égalité. Cependant, lorsque vous effectuez une recherche de préfixe sur une colonne indexée à l'aide de LIKE avec uniquement un suffixe générique (par exemple, le nom de colonne LIKE 'search%'), cela surpasse considérablement INSTR.
Implémentation
INSTR et LIKE parcourent la colonne de gauche à droite, en comparant la chaîne de recherche avec les données stockées. INSTR recherche une correspondance exacte, tandis que LIKE autorise les caractères génériques (% et _) pour les correspondances partielles.
Recommandation
Pour les colonnes indexées où la correspondance de préfixe n'est pas requise, INSTR et LIKE sont deux options viables avec des performances similaires. Cependant, lorsque vous traitez des tables non indexées ou recherchez uniquement des suffixes, LIKE avec un caractère générique de suffixe est recommandé pour des résultats plus rapides.
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!