SQL関数lower
は呼び出されません 。ドキュメントに記載されているように、本質的に 内部 lower
を呼び出します 。
呼び出しは、citext
を実装するC関数内で発生します 比較演算。そして、実際にlower
を呼び出すのではなく 、基になるstr_tolower()
に直接移動します ルーティーン。これは、ソースコード<で確認できます。 / a> 、この場合、そのほとんどは比較的簡単に追跡できます。
したがって、節約できるのは、多かれ少なかれ、比較ごとに2つのSQL関数呼び出しのオーバーヘッドです。比較自体のコストと比較すると、これは重要ではありませんが、通常のクエリでは、他のコストの隣にどちらかが表示されることはおそらくないでしょう。