PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Seltsames Problem mit der Leistung von Zitexten in PostgreSQL?

Es ruft nicht die SQL-Funktion lower auf . Wie die Dokumentation sagt, ist es im Wesentlichen intern ruft lower auf .

Die Aufrufe erfolgen innerhalb der C-Funktionen, die den citext implementieren Vergleichsoperationen. Und anstatt tatsächlich lower zu nennen , gehen sie direkt zum zugrunde liegenden str_tolower() Routine. Davon können Sie sich selbst im Quellcode<überzeugen /a> , von denen die meisten in diesem Fall relativ einfach zu befolgen sind.

Was Sie also mehr oder weniger sparen, ist der Overhead von zwei SQL-Funktionsaufrufen pro Vergleich. Das ist im Vergleich zu den Kosten des Vergleichs selbst nicht unerheblich, aber Sie würden in einer typischen Abfrage wahrscheinlich nie einen von beiden neben den anderen Kosten bemerken.