Lors de la recherche dans une base de données de lignes contenant des mots-clés spécifiques dispersés sur plusieurs colonnes, deux options principales apparaissent : MATCH CONTRE et LIKE . Chaque approche a ses avantages et ses inconvénients, comme expliqué ci-dessous.
MATCH AGAINST
Utilisant un index de texte intégral sur les colonnes appropriées, MATCH AGAINST offre des performances supérieures sur les tables utilisant le moteur de stockage MyISAM. Cela permet une correspondance efficace avec plusieurs mots-clés dans les colonnes spécifiées.
LIKE
Bien que plus polyvalentes que MATCH AGAINST, les recherches LIKE nécessitent une évaluation de chaque ligne individuellement par concaténation et comparaison. Cette approche entraîne des pénalités de performances importantes, en particulier pour les grandes tables. De plus, LIKE peut avoir des difficultés avec des correspondances de mots clés partielles, telles que "xxfoo" ne correspondant pas dans le cas de MATCH AGAINST.
Choix préféré
Pour les tables MyISAM , MATCH AGAINST est le choix préféré pour les recherches en texte intégral impliquant plusieurs mots-clés sur plusieurs colonnes.
Pour les tables InnoDB, MySQL 5.6 et versions ultérieures offrent la prise en charge de Match Against, ce qui en fait une option viable.
Envisagez d'utiliser une recherche tierce. Moteur
Si les performances sont un facteur critique et que le système de base de données sous-jacent ne fournit pas de solutions satisfaisantes, envisagez d'intégrer un moteur de recherche tiers spécialement conçu pour l'indexation et la recherche en texte intégral.
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!