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