improve Chinese locale performance
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.
My English is too bad to describe my idea.
Please find the attachment.
The users in China would like to use locale=C, because it is faster.
When need to order, they call function convert() to do.
And I found some wrong order in the locale zh_CN of Linux.
In my test under Windows, there is performance improve too.
Windows XP sp3, vm, locale=Chinese_People's Republic of China.936
original code, 343ms
modified code, 235ms
Maybe, some Asian Languages have same problem.
Regards,
Quan Zongliang
Attachments:
zhCNorder.tar.gzapplication/x-gzip; name=zhCNorder.tar.gzDownload
� ���Q �Zms7��W�W N%+����b9�S���\�K�/w�M��������������n���.�]�2�X���x�h<����E���u^��� ��9�����l�f<��Wx��$Qdi<t��{�P�
'q� 4�:�D��5��Y/W�\����s����<�P]����4�(J"�A��8
�(�������@�&��m-w��������<��n�����5����B��]6Q��Z���'w� C�a���������f�����<.��M=����f�<�����r4���������L���
�,���*�q��GGG3�~�������7ud��0Q}�#*�dR���d���Q����J��l��W���:~��W�7��.W��U����/K��lt�����/��b6���,���z>i�M]���fZ/kk�x�_�f��>�����3�@����=;�8�d���Y�*_��y1[���
Z
�E�Z/�j�O���u�����:�L?Y�{>i��nbo�v:���7$L_U�8_OV��� TW��Z�f����n��l��ghl��|q3P�,/�c������rf�������rv=_�j7��b2��OO�7�������O�?=����%o���)�����T'����{J��$��g����G�j�HjY:�����;3��`yY����.&��WO��NZ��n:��z2�<x|~���P=h�o�����fz���������'�B�Z\����`c�����g�I
1z^�����E��������%p3AO�j��q�Y=��s���j��i�Np �x�������P��{3&1|ku>�x~n���fY�p-gSg���B@���|���,���5����;7��-�G���c��
F�
1�������n��b������s5
^����zy�t�)8��q���!O=���W����5��]n�os�j���8��l�f=�� d�Q����kH;�~:8op��+=��������.��~N���,��_����G�����n[wlO�u�%�_�>l���m��7��_�����'��v����K����e����:_�m��u���D��rn���S��������g����r��G����bR�z���Q��n��q�i0�����Kpt(+7��j�MAk����i9YW�z���U���n�,o�n�mm�T
��������8~5m�YU���f��"���p��Y]���������F}��L��M^LjK��;���~���BiU�_���ecWnTB4L����������n�����A9A8������YS���|�X���E]�.���u5Gm�;���.��)dL������
�����{�z�C��
~<i?��M��l?����kW��^C��D�V_Z��K��Qs��C|��^��9l������=�8����?vI�[PG*��y��r��?�j����_�?{���C���^,�z��{�������}����������'�F��_<>�x���q�(�r��<�hH�~Z� �\z�_fh���/��������C��!|�YO!g�V�����^]|��8��� ����s��P�}�ad�Y��������C���~���-�{{oo����x�B<l�������;q�V�������~��{G����: �?RouO}��W�dG;����������`uG6)�\�:sSl�p�����u�Y�@����~���-� ����j9p����\*��j����GMq��G�l~�1dU_�����g��w_ �ap�6�PGq����`�?�������[{�h*�7�6)d��x/���l�i_�A�2"/ �?�Qu�N 7��/�����m���NT��z}��k�N4��}����@��������w��c�!�@Y2��o�#�l�C�#��4������t�n����X;>�����$H�Kwz:t\�z���P�p�0�N\p��$�����e��t�r
I��������Ov���_�+����;=+��vS�����^ tb���w
����-f��� �
���[i��+f��rw-�?v���!��O���p�p3`����e�{�����~����5��.^�����1d�Gt�������O�87��'�O��7�$���^0�m�@R��o�;���m@@��I{#���\��^�A�G�h����Xd))��������^o���/�|
�����E��]n�KwA���{�����:�x�Y��r9�����6�I����~��v������a�g�4'�e>igI1� ���6�����
���{��U���7�K;��n�h,��G�K�NK��Q}���NX�/�����7
�������A��C�Q>��^�tS��f��1�nKW8���������������)y����������:n;�^+I����*�N[�-�sG�+����j{���+|�fe�������;�W�
�����5�}>�_�+|o���w�w��%|"n��^�>x�o�$�n^4�zg=B_�S��D�|�d.8�Oo��h�����+����Pg������+]��W����%�o�4'���V�*��k�_m���f��0��TX�IZ�#���������O}������+?�|��.E��Z��c+8"��,W�������*�e
IA`n������X����3�b{��?��U�n�����
t]�`����^��j=Tp%<�\�n�h������8�y������qC[�����bi���)����]���t&��VX����Is������������f���R���������a����Q���h���~~k�������{' ������ll����P�v�uTn����e�1���������[�����Z��:��� ��/��`�U�!y��}�������)�b��������c�?r����]��[Cv��@���z������2_����M[C,z�1o����~�|rll;�������t��1��-����'��a�|���*o�K5]_���z6�ol�:w�$�����������A~5��w���������0�Z2�Q��������~�/�� h=��,�����$z$��������������?S���s��7��|����PI�S���H�������� w��~I�A%a���p1�+����}�������ph�?T�N���p�A "�M�#B������ "DD�� A$�9"%�Gd�!"�C G����f��� ��LpZr� N+�@N���&��N�����rj8�& ��pN�&��pNMH�����.>B������ �S�95 A ��sjR�p��0��� "DpN�!���� DN�H!8- "C���"��ir�
�c��9���8�"�i���Eh����Y����#�{�����:�V�CL�'��H�K��y�G(�?_�<�������b=L"'�Z�������j��(9�$� G�� p��� "D<j�1AD8[n�z�|>�"������Phb��t��zHv-#-�W�_�CL~=x\ AD��*|<��)���� �-��� 7��3]�aW6�`� ��6J���(�`�"d\�� "AO�l���sDHtF���G�A�`8����q
6B� �q%�F1G��
�H�qb�� �q�pDF��D�!�G��8MB�zA�#����S�UB�32�T(����9J$$:#CN����������!�rjRaCD��%��� RDp�����1�� "&�Z ��0�S�!<���p�
/3�?p����a03h�� "D��� �<���0�q@�*�p����Q�c\K���D|���3�ia����/�ws��$����s����}VI""�*1�%���*�@$b����YEd&�1�������l�3��<�g�m���h��V��O�����x����[��kb=A�L)�>~1$�?W�a��� lh��I�uC�0�[9�DS~O���(��
"!<��a�4��?#�C�������g��� fDKm>�1T�(�
�*�?�\ ������� �e����������D �|���!o�����#�|P�*#��� �(��)G$�� 6R��| Ax��9�D��VN)"cAd��`�$�6"��b�BNc��"�!*�4���1AhDpDCT�S�g"�!*�)W;�U� ���6O�V�?"�1�33"������������:-|H u�~t�Q#�I�c�h�O"DC��x�B�����Q�����eE"[5A8�S-��.\aD�FQ��%���E����^Q#��6��1�JZA�������W�bG1����Et��s*�W���TT�"R�{N�%'b�Q��@�x�."���g�W�"R�{��`|f���J[��
@�����
@ ��u��x&lh�p�g\}E]�����v� "�1A����v���,��)AD��4� <�\�D]����T r���s)�q�qEuuxN31�� �Sqtz���L�>&���m��
xN�����[��s�O���F{Ny����0�>