Dans un scénario avec une table contenant une colonne de mots-clés et un moteur de stockage InnoDB, optimisation des requêtes utilisant le LIKE Le modèle '%string%' peut être un défi.
Au départ, un simple index a été ajouté à la colonne des mots-clés. Cependant, les requêtes EXPLAIN ont révélé que la table entière devait être analysée lorsque les requêtes utilisaient le modèle « %string% ». Cet index s'est avéré bénéfique uniquement pour les requêtes LIKE 'string%'.
Pour les tables InnoDB, les index de texte intégral sont préférés pour les requêtes avec des termes de recherche flottants, où le terme de recherche se trouve n'importe où dans la chaîne. Cependant, on pensait auparavant qu'InnoDB ne prenait pas en charge les index de texte intégral.
Dans les versions récentes (5.6.4 et ultérieures), InnoDB a obtenu la prise en charge des index de texte intégral. Cela signifie que pour les requêtes LIKE '%string%' optimisées, la mise à niveau vers InnoDB version 5.6.4 ou supérieure est recommandée. Les index de texte intégral sont spécifiquement conçus pour les termes de recherche flottants.
En utilisant des index de texte intégral, les termes de recherche « flottants » peuvent être localisés efficacement dans la colonne des mots-clés. Cela élimine le besoin d'analyser la table entière, améliorant considérablement les performances des requêtes LIKE '%string%' dans les tables InnoDB.
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!