Optimisation de la recherche MySQL à l'aide de "J'aime" et de caractères génériques
Requêtes MySQL utilisant "J'aime" avec des caractères génériques de premier plan, tels que "SELECT * FROM sometable WHERE somefield LIKE '%value%'" souffre souvent de problèmes de performances. Le caractère générique principal empêche le SGBD d'exploiter les index, ce qui entraîne des temps de recherche plus lents.
Stratégie d'optimisation
Une technique d'optimisation efficace consiste à diviser la chaîne de recherche en fragments plus petits. . Plutôt que de stocker la chaîne entière « valeur », stockez tous les suffixes possibles : « valeur », « aleur », « lue », « ue » et « e ». Ce faisant, vous éliminez le caractère générique de début et autorisez la base de données à utiliser un index pour une recherche plus rapide.
Considérations relatives au stockage
Le coût de stockage de tous les suffixes augmente quadratiquement avec la longueur de la chaîne. Par exemple, un mot de 5 lettres nécessite 2,5 fois plus d'espace de stockage que le stockage de la chaîne d'origine. Il est donc important de déterminer si cette surcharge de stockage est acceptable compte tenu des contraintes de votre base de données.
Considérations sur le fractionnement des mots
Pour les expressions de plusieurs mots, décider comment diviser le les mots sont cruciaux. Par exemple, devriez-vous stocker « cinq lettres » sous forme d’un ou deux mots ? Le fractionnement des mots peut limiter la flexibilité de la recherche, mais les conserver comme une seule unité augmente les besoins de stockage. Trouvez un équilibre qui convient à vos modèles de recherche.
Conseils supplémentaires
Envisagez d'utiliser un index secondaire sur la colonne des suffixes pour des recherches plus rapides. Indexez uniquement les colonnes nécessaires pour minimiser la redondance. Si possible, limitez le nombre de lignes générées par ces requêtes pour éviter les goulots d'étranglement des performances.
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!