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