Maison >base de données >tutoriel mysql >Comment puis-je optimiser les requêtes LIKE multicolonnes dans MySQL pour de meilleures performances ?
Optimisation des requêtes LIKE multi-colonnes pour les performances MySQL
Dans MySQL, les requêtes LIKE fréquentes peuvent entraver les performances. Considérons la requête : SELECT x, y, z FROM table WHERE x LIKE '%text%' OR y LIKE '%text%' OR z LIKE '%text%'. Comment pouvons-nous accélérer de telles requêtes sans encourir une utilisation importante du disque ou des pénalités de performances lors de la manipulation des données ?
Limitations des index
Les approches d'indexation traditionnelles s'avèrent inefficaces pour les requêtes LIKE avec des caractères génériques à le début des termes de recherche. Les index facilitent un accès rapide aux données en indexant des caractères spécifiques à gauche d'un champ. Dans le cas de LIKE '%text%', le nombre variable de caractères précédant "text" entrave l'utilisation de l'index.
Recherche en texte intégral (FTS)
Au lieu de en s'appuyant sur des index, MySQL propose FTS pour les tables MyISAM. FTS rationalise les recherches textuelles en indexant les mots dans les colonnes. Cette méthode est très efficace pour les requêtes LIKE avec des caractères génériques aux deux extrémités.
Tables non-MyISAM
Pour les tables utilisant des moteurs de stockage non-MyISAM, un système d'indexation personnalisé peut être mis en œuvre. Cela implique de créer une table d'index distincte où les mots sont associés aux identifiants de table correspondants.
MySQL 5.6
À partir de MySQL 5.6, FTS est devenu disponible pour les tables InnoDB. Cela offre une alternative appropriée aux utilisateurs qui ont besoin des avantages d'InnoDB.
Conséquences
Bien que FTS améliore considérablement les performances des requêtes LIKE, il présente des inconvénients potentiels :
Avant la mise en œuvre FTS, considérez le compromis entre la vitesse de recherche et les performances d'utilisation du disque/de manipulation des données. Pour les applications où les requêtes LIKE rapides sont primordiales, FTS est une technique d'optimisation précieuse.
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!