Maison >base de données >tutoriel mysql >INSTR vs LIKE dans MySQL : quelle méthode de correspondance de chaînes est la plus rapide ?
Lors du test de l'existence d'une chaîne dans une colonne MySQL de longueur de caractères variable, une question se pose concernant la méthode optimale à utiliser pour l’efficacité et la rapidité. Deux approches courantes sont :
1. INSTR(nom de colonne, 'machaîne' ) > 0
2. columnname LIKE '%mystring%'
En termes de vitesse, nos tests ont révélé un résultat surprenant : INSTR et LIKE fonctionnent de manière identique lors de la vérification de l'existence d'une sous-chaîne. Par exemple :
INSTR(Name,'search') > 0 LIKE '%search%'
Les deux requêtes ont analysé la table entière et ont pris environ 5,54 secondes. Cependant, lors de l'exécution d'une recherche de préfixe sur une colonne indexée, l'opérateur LIKE avec seulement un caractère générique de suffixe surpasse considérablement INSTR :
LIKE 'search%'
Cette recherche de préfixe optimisée n'a pris que 3,88 secondes.
En plus d'INSTR et LIKE, MySQL prend également en charge les recherches FULLTEXT pour des performances améliorées. Cependant, ces recherches sont plus efficaces lorsque la colonne du tableau est indexée avec FULLTEXT et que la chaîne que vous recherchez apparaît près du début de la colonne.
En pratique, le choix entre INSTR et LIKE dépendent du cas d'utilisation spécifique :
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!