Maison >base de données >tutoriel mysql >Comment puis-je optimiser les comparaisons de similarité Levenshtein entre les entrées utilisateur et une base de données MySQL ?

Comment puis-je optimiser les comparaisons de similarité Levenshtein entre les entrées utilisateur et une base de données MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-13 02:44:13617parcourir

How Can I Optimize Levenshtein Similarity Comparisons Between User Input and a MySQL Database?

MySQL et PHP : améliorer la similarité de Levenshtein avec une requête unique

L'extrait de code PHP fourni illustre l'utilisation de la fonction d'édition de distance de Levenshtein pour comparer les entrées de l'utilisateur avec les termes stockés dans une base de données MySQL. Cependant, traiter un grand nombre de termes en PHP peut s'avérer inefficace.

Pour optimiser le processus, il est souhaitable de déplacer le calcul de similarité dans une seule requête MySQL. Cela nécessite une fonction Levenshtein dans MySQL.

Le code suivant montre comment utiliser la fonction MySQL levenshtein() pour y parvenir :

$word = mysql_real_escape_string($word);
mysql_qery("SELECT `term` FROM `words` WHERE levenshtein('$word', `term`) BETWEEN 0 AND 4");

Cette requête recherche les termes dans la table des mots qui avoir une distance de Levenshtein comprise entre 0 et 4 par rapport à l'entrée utilisateur. En utilisant cette requête modifiée, le processus est simplifié, le nombre de requêtes de base de données est réduit et les performances globales sont améliorées.

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:
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