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