Par exemple, il existe une instruction mysql comme celle-ci :
select * from city where city_name like '%hf%' order by created_at;
Comment créer un index pour une telle instruction SQL ? Si vous souhaitez créer un index composite, utilisez :
key(created_at,city_name)
Puisquecreated_at est devant, il dégénère en key(created_at) selon le principe de correspondance le plus à gauche de l'index.
key(city_name,created_at)
Cela ne fonctionnera certainement pas. La précédente était une requête floue, et cet index composite a dégénéré en clé (ville). Dans ce cas, pouvons-nous créer une seule colonne d'index pour résoudre le problème ?
S'il vous plaît dites-moi.
% avant et après ne sont pas indexés, et il n'y a pas de problème de dégradation de l'index. Soit vous modifiez le SQL pour qu'il corresponde au préfixe, soit vous ajoutez un index de texte intégral (ne convient pas aux chaînes courtes. De plus, pour ces données fondamentalement inchangées, le). l'application peut être insérée dans le moteur de recherche et son segmenteur de mots peut être utilisé pour rechercher