>
>
>
> *Tom Lane <t...@sss.pgh.pa.us>*
> Sent by: pgsql-performance-ow...@postgresql.org
> 03/10/2009 08:16 PM AST
>
> "Steve McLellan" <smclel...@mintel.com> writes:
> > lc_messages = 'en_US.UTF-8'
> > lc_monetary = 'en_US.UTF-8'
> > lc_numeric = 'en_US.UTF-8'
> > lc_time = 'en_US.UTF-8'
>
> BTW, aside from the points already made: the above indicates that you
> initialized your database in en_US.utf8 locale.  This is not necessarily
> a good decision from a performance standpoint --- you might be much
> better off with C locale, and might even prefer it if you favor
> ASCII-order sorting over "dictionary" sorting.  utf8 encoding might
> create some penalties you don't need too.  This all depends on a lot
> of factors you didn't mention; maybe you actually need utf8 data,
> or maybe your application doesn't do many string comparisons and so
> isn't sensitive to the speed of strcoll() anyway.  But I've seen it
> be a gotcha for people moving from MySQL, which AFAIK doesn't worry
> about honoring locale-specific sort order.
>
>    regards, tom lane
>
> Thanks for the reply. We did intentionally initialize it in UTF-8 locale.
We could get away with using C locale in this case, although we try to
standardise on UTF-8 in general since we do in other instances require it.
The only string comparisons we do are equalities, although it can be the
case that we're comparing a large number of rows. We may give it a try and
see what kind of performance hit that's giving us. Currently we're trying to
get some big easy wins through parameter settings; I imagine we will want to
start shaving some more time off queries in the near future.

Thanks, Steve

Reply via email to