Contexte : Optimisation des requêtes qui utilisent le LIKE '%string%' la syntaxe peut être difficile, en particulier dans un environnement InnoDB. Pour résoudre ce problème, examinons les options disponibles et leurs limites.
Limitations de l'indexation de base :
Création d'un index standard, comme démontré avec l'exemple ALTER TABLE ADD INDEX idxSearch (mots-clés) ne résout pas le problème de performances pour les requêtes telles que LIKE '%whatever%'. En effet, les index InnoDB sont construits du début à la fin de la chaîne. Par conséquent, les recherches « flottantes », dans lesquelles la chaîne peut apparaître n'importe où dans le champ, ne peuvent pas exploiter ces index.
Présentation des index de texte intégral :
Pour des recherches de chaînes flexibles , les index de texte intégral entrent en jeu. Ils sont adaptés aux scénarios dans lesquels les termes de recherche peuvent apparaître n'importe où dans la colonne indexée. La prise en charge par InnoDB des index de texte intégral à partir de la version 5.6.4 permet de tirer parti de leurs avantages même avec les tables InnoDB.
Implémentation :
Pour implémenter un index de texte intégral, exécutez la requête suivante :
ALTER TABLE example ADD FULLTEXT INDEX (keywords)
Avantages des index de texte intégral :
Considérations supplémentaires :
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!