Optimisation de la recherche MySQL à l'aide de "J'aime" et de caractères génériques
La condition "J'aime" avec des caractères génériques peut avoir un impact significatif sur les performances des requêtes dans MySQL lorsqu'elle est utilisée avec des caractères génériques en tête. La raison en est que le caractère générique principal empêche le SGBD d'utiliser les index, laissant la requête effectuer une recherche linéaire dans l'ensemble de la table.
Compte tenu des limites de la condition "j'aime" avec les caractères génériques et de la solidité de les valeurs de chaîne à rechercher, une approche différente est nécessaire pour améliorer les performances. Cette approche consiste à créer un tableau de suffixes pour chaque mot à rechercher.
En stockant tous les suffixes possibles de chaque mot, les requêtes utilisant la condition « j'aime » avec uniquement des caractères génériques de fin peuvent désormais exploiter les index. La condition « j'aime » ne sera plus gênée par le caractère générique principal, ce qui permettra des recherches efficaces à l'aide d'une requête de plage sur l'index.
Le coût de stockage associé à cette approche est un compromis. Bien qu'il élimine la surcharge de stockage du caractère générique principal dans la condition « similaire », il introduit des exigences de stockage supplémentaires pour la table des suffixes. L'espace de stockage nécessaire augmente considérablement avec l'augmentation de la longueur des mots.
Les considérations de mise en œuvre incluent la détermination de la stratégie de fractionnement de mots appropriée (par exemple, la gestion des traits d'union), l'équilibre entre la surcharge de stockage et l'efficacité des requêtes et l'exploration de méthodes de stockage alternatives pour les tableaux de suffixes afin de minimiser frais de stockage.
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!