Den anropar inte SQL-funktionen lower
. Som dokumentationen säger är det i huvudsak internt anropar lower
.
Anropen sker inom C-funktionerna som implementerar citext
jämförelseoperationer. Och snarare än att faktiskt anropa lower
, går de direkt till den underliggande str_tolower()
rutin. Du kan se detta själv i källkoden , varav de flesta är relativt lätta att följa i det här fallet.
Så vad du sparar, mer eller mindre, är overheaden av två SQL-funktionsanrop per jämförelse. Vilket inte är obetydligt, jämfört med kostnaden för själva jämförelsen, men du skulle förmodligen aldrig märka någon av dem bredvid de andra kostnaderna i en typisk fråga.