Maison > base de données > tutoriel mysql > L'indexation peut-elle améliorer les performances des requêtes LIKE multi-colonnes de MySQL ?

L'indexation peut-elle améliorer les performances des requêtes LIKE multi-colonnes de MySQL ?

Mary-Kate Olsen
Libérer: 2024-12-13 02:32:10
original
1027 Les gens l'ont consulté

Can Indexing Improve MySQL's Multi-Column LIKE Query Performance?

Optimisation des requêtes LIKE multi-colonnes dans MySQL

Les requêtes SELECT lentes utilisant des clauses LIKE sur plusieurs colonnes peuvent constituer un goulot d'étranglement en termes de performances. Dans cet article, nous verrons si l'indexation peut améliorer la vitesse des requêtes et répondre aux problèmes liés à l'utilisation du disque et aux performances INSERT/DELETE.

Un index peut-il améliorer les performances LIKE ?

Malheureusement, les index sont inefficaces pour les requêtes LIKE dans MySQL car ils fonctionnent en indexant un nombre fixe de caractères en partant de la gauche. Avec LIKE '%text%', il peut y avoir une quantité arbitraire de texte avant la chaîne cible, empêchant l'utilisation de l'index.

Approches alternatives

Au lieu d'utiliser LIKE, pensez à FTS (Full Text Search). FTS est pris en charge pour les tables MyISAM et permet une recherche efficace de correspondances de chaînes partielles. Pour les tables non MyISAM, la mise en œuvre de votre propre système d'indexation à l'aide d'une table d'index distincte pour mapper les mots aux identifiants peut reproduire la fonctionnalité FTS.

Utilisation du disque et performances INSERT/DELETE

L'indexation FTS peut augmenter l'utilisation du disque. Cependant, l'impact sur les opérations INSERT/DELETE est minime. En effet, les insertions ajoutent uniquement de nouveaux mots à l'index, ce qui est effectué dans le cadre de la transaction, tandis que les suppressions marquent les mots pour une suppression ultérieure.

Mise à jour

MySQL 5.6 introduit la prise en charge FTS pour les tables InnoDB, offrant une option robuste pour améliorer les performances LIKE sur différents types de tables.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal