Maison > base de données > tutoriel mysql > `LIKE` vs `=` dans SQL : quand la correspondance des caractères génériques est-elle plus efficace ?

`LIKE` vs `=` dans SQL : quand la correspondance des caractères génériques est-elle plus efficace ?

Barbara Streisand
Libérer: 2025-01-05 07:37:43
original
974 Les gens l'ont consulté

`LIKE` vs. `=` in SQL: When is Wildcard Matching More Efficient?

Les performances de 'LIKE' par rapport à '=' dans SQL lors de l'utilisation de caractères génériques

On pense généralement que '=' est plus efficace que 'LIKE' lors de l'utilisation caractères génériques dans les requêtes SQL. Cependant, cela n'est pas toujours le cas.

Considérons l'exemple suivant :

SELECT * FROM table WHERE value LIKE 'abc%'
Copier après la connexion
SELECT * FROM table WHERE value = 'abcdefghijklmn'
Copier après la connexion

Dans ce cas, « LIKE » n'a besoin que de comparer les trois premiers caractères pour trouver un match. '=' doit comparer la chaîne entière. Par conséquent, il peut sembler que « LIKE » aurait un avantage dans ce scénario.

Cependant, l'utilisation de l'index peut affecter les performances des requêtes « LIKE ». Comme indiqué dans cet article de Jonathan Nelson sur MyITForum :

  • Si vos critères de filtre utilisent '=' et que le champ est indexé, il utilisera probablement une RECHERCHE D'INDEX/INDEX CLUSTERED.
  • Si vos critères de filtre utilisent « LIKE » sans caractères génériques, il est aussi probable qu'il utilise l'index que '='.
  • Si vos critères de filtre utilisent 'LIKE' avec un caractère générique au début, il est beaucoup moins susceptible d'utiliser l'index.
  • Cependant, si vos critères de filtre utilisent 'LIKE' ' avec un STRING FIRST et des caractères génériques quelque part APRÈS cela, SQL peut utiliser une INDEX SEEK pour trouver les lignes qui ont les mêmes premiers caractères de début, puis parcourir ces lignes pour obtenir un résultat exact. match.

Par conséquent, les performances des requêtes « LIKE » vs « = » avec des caractères génériques dépendent de divers facteurs, notamment l'utilisation de l'index, l'emplacement des caractères génériques et le moteur SQL spécifique utilisé.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal