On 07/22/2013 12:17 PM, Quan Zongliang wrote:
> Hi hackers,
> 
> I tried to improve performance when database is Chinese.
> 
> Under openSUSE, create index on table with 54996 rows
> locale=C, 140ms
> locale=zh_CN, 985ms
> 
> I think the function strcoll() of Linux is too slow.
> So, I made a new utf8 to GB18030 map, store Chinese order in it.
> Do not call strcoll().
> On my modified code, same operation, locale=zh_CN, 203ms.

It might be worth looking at gcc's strcoll() implementation. See if it
performs better when you use the latest gcc, and if not try to improve
gcc's strcoll() .

I'd be interested in seeing a test case for this that shows that the
results of your new collation are exactly the same as the original
strcoll() based approach.

-- 
 Craig Ringer                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to