Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL Query Tuning - Warum ist die Verwendung eines Werts aus einer Variablen so viel langsamer als die Verwendung eines Literals?

War mit dem Schreiben der Frage fertig, als mir die Antwort einfiel, also poste ich trotzdem zum Wissensaustausch!

Mir ist aufgefallen, dass der Rückgabewert der metaphone-Funktion UTF8 war.

Der Vergleich mit einem latin1-Feld verursachte offensichtlich einen ziemlich hohen Performance-Overhead.

Ich habe die Variablenzuweisung ersetzt durch:

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

Jetzt läuft die Abfrage so schnell, wie ich es erwarten würde.