Обсуждение: Does LC_CTYPE affect performance, index use?

Поиск
Список
Период
Сортировка

Does LC_CTYPE affect performance, index use?

От
Steven Dodd
Дата:
I've read that setting LC_COLLATE to something other than "C" / "POSIX" negatively affects performance, and disables use of indexes for LIKE, etc...

Does the same apply to LC_CTYPE?

I am considering setting LC_COLLATE = "C", and LC_CTYPE = "en_US.UTF-8", and using LOWER() to case-fold strings for sorting, and equality. The motivation for setting LC_CTYPE = "en_US.UTF-8", instead of "C", is to gain at least some degree of case-folding for international characters.

Does this sound like a reasonable plan?

Thanks,

Steven Dodd  |  Software Developer  |  Street Contxt
416-596-9011  |  19 Mercer St, Suite 301, Toronto, ON,  M5V 1H2


This e-mail message is intended for the named recipient(s) above, and may contain information that is privileged, confidential and/or exempt from disclosure under applicable law. If you have received this message in error, or are not the named recipient(s), please do not read the content. Instead, immediately notify the sender and delete this e-mail message. Any unauthorized use, disclosure or distribution is strictly prohibited. Quantify Labs Inc and the sender assume no responsibility for any errors, omissions, or readers' misinterpretations and/ or understanding of the content or transmission of this email.

Re: Does LC_CTYPE affect performance, index use?

От
Peter Eisentraut
Дата:
On Wed, 2013-11-20 at 14:57 -0500, Steven Dodd wrote:
> I've read that setting LC_COLLATE to something other than "C" /
> "POSIX" negatively affects performance, and disables use of indexes
> for LIKE, etc...

It doesn't disable the use of indexes, you just need to create different
indexes.

> Does the same apply to LC_CTYPE?

Yes.

> I am considering setting LC_COLLATE = "C", and LC_CTYPE =
> "en_US.UTF-8", and using LOWER() to case-fold strings for sorting, and
> equality. The motivation for setting LC_CTYPE = "en_US.UTF-8", instead
> of "C", is to gain at least some degree of case-folding for
> international characters.

> Does this sound like a reasonable plan?

No, if you need internalized behavior, then set both LC_COLLATE and
LC_CTYPE to en_US.UTF-8 (or some other suitable locale) and check the
relevant documentation sections about how to create the right indexes.