Maison >base de données >tutoriel mysql >Comment puis-je optimiser les recherches MySQL à l'aide de « LIKE » et de caractères génériques ?

Comment puis-je optimiser les recherches MySQL à l'aide de « LIKE » et de caractères génériques ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-26 04:10:12384parcourir

How can I optimize MySQL searches using

Optimisation de la recherche MySQL à l'aide de "LIKE" et de caractères génériques

Requêtes utilisant l'opérateur "LIKE" avec des caractères génériques, tels que "%value%" , posent souvent des problèmes d'optimisation en raison du caractère générique principal qui gêne l'indexation utilisation.

Solution

Si les chaînes de recherche sont relativement courtes et que l'espace de stockage est suffisant, envisagez l'approche suivante :

  1. Créer une base de données de suffixes :
    Pour chaque mot à stocker, dérivez tous les suffixes possibles en supprimant progressivement le premier caractère de le mot.
  2. Stocker les suffixes :
    Stocker chaque suffixe dans la base de données.
  3. Rechercher à l'aide de suffixes :
    Pour rechercher sous-chaînes, utilisez une requête "LIKE" avec un suffixe générique, par exemple "alu%", qui trouvera "alu" dans "valeur."

Avantages

Cette technique élimine le caractère générique principal, permettant l'utilisation de l'index pour des recherches rapides, mais cela se fait au prix d'un espace de stockage supplémentaire .

Considérations relatives au stockage

Les besoins en stockage pour cette approche augmentent quadratiquement avec la longueur du mot. Par exemple, un mot de 5 lettres nécessitera 2,5 fois plus de stockage que le mot d'origine.

Gestion des traits d'union

Dans les cas où des traits d'union apparaissent, un compromis doit être trouvé. être fait entre l'efficacité du stockage et la flexibilité de la recherche. Le stockage de mots avec des traits d'union intacts sacrifie l'espace de stockage, tandis que la suppression des traits d'union limite certains scénarios de recherche.

Approches alternatives

Bien que les tableaux de suffixes offrent une solution efficace en matière de stockage pour la récupération de suffixes, leur applicabilité directe aux bases de données n'a pas encore été pleinement explorée.

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