sql >> Base de Datos >  >> RDS >> PostgreSQL

En PostgreSQL, ¿problema extraño sobre el rendimiento de citext?

No llama a la función SQL lower . Como dice la documentación, esencialmente internamente llamadas lower .

Las llamadas ocurren dentro de las funciones C que implementan el citext operaciones de comparación. Y en lugar de llamar a lower , van directamente al str_tolower() subyacente rutina. Puedes verlo por ti mismo en el código fuente , la mayoría de los cuales son relativamente fáciles de seguir en este caso.

Entonces, lo que está ahorrando, más o menos, es la sobrecarga de dos llamadas a funciones SQL por comparación. Lo cual no es insignificante, en comparación con el costo de la comparación en sí, pero probablemente nunca notará ninguno de ellos junto a los otros costos en una consulta típica.