PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

No PostgreSQL, problema estranho sobre o desempenho do citext?


Ele não chama a função SQL lower . Como a documentação diz, é essencialmente internamente chama lower .

As chamadas acontecem dentro das funções C que implementam o citext operações de comparação. E em vez de realmente chamar lower , eles vão diretamente para o str_tolower() subjacente rotina. Você pode ver isso no código-fonte , a maioria dos quais é relativamente fácil de seguir neste caso.

Então, o que você está economizando, mais ou menos, é a sobrecarga de duas chamadas de função SQL por comparação. O que não é insignificante, comparado com o custo da comparação em si, mas você provavelmente nunca notaria nenhum deles ao lado dos outros custos em uma consulta típica.