Maison >base de données >tutoriel mysql >INSTR vs LIKE dans MySQL : quelle méthode de correspondance de chaînes est la plus rapide ?

INSTR vs LIKE dans MySQL : quelle méthode de correspondance de chaînes est la plus rapide ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-20 03:12:021038parcourir

INSTR vs. LIKE in MySQL: Which String Matching Method Is Faster?

Analyse des performances : correspondance de chaînes INSTR vs LIKE dans MySQL

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%'

Évaluation des performances

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.

Au-delà d'INSTR et LIKE

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.

Considérations

En pratique, le choix entre INSTR et LIKE dépendent du cas d'utilisation spécifique :

  • Pour les analyses de table complète, INSTR et LIKE effectuent tous deux de même.
  • Pour les recherches de préfixe sur les colonnes indexées, LIKE avec un suffixe générique est plus rapide.
  • Pour les exigences de recherche plus complexes ou sophistiquées, les recherches FULLTEXT doivent être envisagées.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn