PostgreSQL 简体中文区域设置性能改进实践

PostgreSQL 简体中文区域设置性能改进实践,第1张

概述相关阅读《PostgreSQL 字符集下区域设置对性能的影响改进办法》 http://my.oschina.net/quanzl/blog/135721 按照这个思路,将中文排序信息内置于数据库内核之中,如果 locale 选择中文,由此检索排序位置,而不是通过系统API strcoll()。 encoding均为utf-8,数据量为54996,中文与ascii换杂,同一硬件平台,openSUSE

相关阅读《Postgresql 字符集下区域设置对性能的影响改进办法》
http://my.oschina.net/quanzl/blog/135721

按照这个思路,将中文排序信息内置于数据库内核之中,如果 locale 选择中文,由此检索排序位置,而不是通过系统API strcoll()。

enCoding均为utf-8,数据量为54996,中文与ascii换杂,同一硬件平台,openSUSE。
以下为以 pgadminIII 为客户端创建索引的测试结果:

locale=C,原生PG:查询成功但无结果,耗时: 140 毫秒(ms)。
locale=zh_CN.utf8,原生PG:查询成功但无结果,耗时: 985 毫秒(ms)。
locale=zh_CN.utf8,修改后:查询成功但无结果,耗时: 203 毫秒(ms)。

以上结果都是记录“创建、删除、再创建”过程的第二次创建时间。

同时发现一个问题,linux下平台的中文排序比较怪:
select * from (values('阿'),('啊'),('腌'),('包'),('')) as a(e) order by e;
返回结果
""
"腌"
"阿"
"啊"
"包"
猜测这里的“腌”,取“a za”发音。不是 yan 音。

不管怎样,后边尝试跟社区沟通一下,看他们能不能接受。以前就PG在不同系统下排序混乱的话题讨论,有位大仙说这样(使用 *** 作系统排序)挺好。

总结

以上是内存溢出为你收集整理的PostgreSQL 简体中文区域设置性能改进实践全部内容,希望文章能够帮你解决PostgreSQL 简体中文区域设置性能改进实践所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1177997.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存