Maison > base de données > tutoriel mysql > MATCH CONTRE ou LIKE : quel est le meilleur pour les recherches de mots clés multicolonnes dans MySQL ?

MATCH CONTRE ou LIKE : quel est le meilleur pour les recherches de mots clés multicolonnes dans MySQL ?

Patricia Arquette
Libérer: 2024-12-28 01:55:09
original
805 Les gens l'ont consulté

MATCH AGAINST or LIKE: Which is Better for Multi-Column Keyword Searches in MySQL?

Choisir entre MATCH AGAINST et LIKE pour la recherche dans la base de données

Dans les requêtes de base de données, on est confronté au dilemme de sélectionner la requête optimale pour la recherche lignes basées sur des mots-clés spécifiques dans plusieurs colonnes. Cette question compare deux approches :

MATCH AGAINST

Cette requête utilise l'indexation en texte intégral pour rechercher des documents contenant les mots-clés "foo" et "bar" dans les colonnes spécifiées "foo_desc" et "bar_desc". Dans MySQL versions 5.6 et ultérieures, MATCH AGAINST est pris en charge pour les tables InnoDB.

LIKE

Cette requête concatène les valeurs des deux colonnes et utilise LIKE pour effectuer une recherche de sous-chaîne pour "foo" et "bar" dans le résultat string.

Considérations sur les performances

MATCH AGAINST présente des performances supérieures sur les tables MyISAM, en exploitant les index de texte intégral pour rechercher efficacement les mots-clés. En revanche, LIKE effectue une analyse complète du tableau, en recherchant les mots-clés dans chaque ligne, ce qui peut prendre du temps pour les grands ensembles de données.

Limitations de LIKE

LIKE n'est efficace que s'il est appliqué directement à une colonne (pas un résultat de fonction), si le modèle de recherche correspond au début de la colonne et si la colonne est indexée. Sinon, il s'agit par défaut d'une analyse complète de la table, ce qui devient peu pratique pour les grands ensembles de données.

Les inconvénients de MATCH AGAINST

Une limitation de MATCH AGAINST dans MySQL est qu'il correspond uniquement à des mots entiers. Ainsi, une recherche de « bla » ne correspondra pas à une colonne contenant « blah », mais une recherche de « bla* » la trouvera.

Approche préférée

Sur la base de considérations de performances et des limites de LIKE, MATCH AGAINST est le choix préféré pour rechercher de grands ensembles de données pour des mots-clés dans plusieurs colonnes. Il exploite l'efficacité de l'indexation en texte intégral pour fournir des résultats rapides et précis.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal