你们的服务器设的什么 locale?

2023-11-08 13:31:33 +08:00
 bagel

上面要跑数据库,系统 locale 用 en_US.UTF-8 还是 zh_CN.UTF-8 会影响中文搜索排序的性能吗?

2163 次点击
所在节点    程序员
17 条回复
knightdf
2023-11-08 13:37:13 +08:00
系统 locale en_US.UTF-8
Masoud2023
2023-11-08 13:45:12 +08:00
数据库跟 locale 有什么关系
ospider
2023-11-08 13:45:38 +08:00
当然是 en_US ,不过跟你数据库有啥关系……
flyqie
2023-11-08 13:48:59 +08:00
en_US
bagel
2023-11-08 13:50:19 +08:00
数据库会默认用系统的 locale 创建数据库实例。那你们是系统用 en_US.UTF-8 ,数据库单独设成 zh_CN.UTF-8 ,这样?
fd9xr
2023-11-08 13:57:45 +08:00
为什么数据库会用 zh_CN?
bagel
2023-11-08 14:00:30 +08:00
因为会存储数据包含中文,有搜索排序需求,可能 zh_CN.UTF-8 更能保证正确性?
NessajCN
2023-11-08 14:03:01 +08:00
@bagel 包不包含中文跟系统 locale 当然是没有半毛钱关系的
blankmiss
2023-11-08 14:10:34 +08:00
不知道 但是我的认知里 这两个东西应该没有任何关联 我不知道你是怎么想的
bagel
2023-11-08 14:17:25 +08:00
@NessajCN 系统的 locale 会影响数据库的 locale (除非专门设置),进而影响正确性和速度。比如汉字排序在不同 locale 下不同,性能也差几倍,刚找到篇文章: https://github.com/Vonng/pg/blob/master/app/sql-locale.md
gadfly3173
2023-11-08 14:33:47 +08:00
@bagel 如果你有根据拼音排序的需求,冗余一个拼音字段比设置数据库 locale 应该是更好的选择
NessajCN
2023-11-08 14:47:28 +08:00
@bagel 所以你不也说了,因为数据库 locale 有时候会跟着系统 locale,「进而」对汉字排序产生影响
也就是有影响的是「数据库 locale 」而非「系统 locale 」
那我说「系统 locale 跟数据库包不包含中文没关系」有啥错呢...
在 locale 敏感的环境下手动设置一个数据库 locale 难道不是理所当然的?
Noita
2023-11-08 18:37:57 +08:00
同 en_us
fd9xr
2023-11-09 04:55:52 +08:00
@bagel 没有任何关联
cnhongwei
2023-11-09 09:51:10 +08:00
PG 不了解,但 Mysql 和 Oracle 都是创建数据库的时间指定字符集和排序集的。和系统 Locale 没有关系。
daimaosix
2023-11-09 11:12:39 +08:00
C.UTF-8
julyclyde
2023-11-10 10:46:26 +08:00
其实不存在“系统级”locale
各进程都分别有自己的环境变量。环境变量未经设置的时候,才是一次性继承自上一级进程

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/989839

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX