Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL Query Tuning - Por que usar um valor de uma variável é muito mais lento do que usar um literal?


Terminei de escrever a pergunta quando a resposta me atingiu, então postando de qualquer maneira para compartilhamento de conhecimento!

Percebi que o valor de retorno da função metafone era UTF8.

A comparação com um campo latino1 estava obviamente incorrendo em uma sobrecarga de desempenho bastante pesada.

Substituí a atribuição de variável por:
SET @metaphone_val:= CONVERT(double_metaphone(p_parameter) USING latin1);

Agora, a consulta é executada tão rápido quanto eu esperaria.