Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL Query Tuning - Pourquoi l'utilisation d'une valeur à partir d'une variable est-elle tellement plus lente que l'utilisation d'un littéral ?

J'avais fini d'écrire la question lorsque la réponse m'a frappé, alors je poste quand même pour le partage des connaissances !

J'ai réalisé que la valeur de retour de la fonction metaphone était UTF8.

La comparaison avec un champ latin1 engendrait évidemment une surcharge de performances assez lourde.

J'ai remplacé l'affectation de variable par :

SET @metaphone_val:= CONVERT(double_metaphone(p_parameter) USING latin1);

Maintenant, la requête s'exécute aussi vite que prévu.