
上面要跑数据库,系统 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 4BVL25L90W260T9U 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 @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 C.UTF-8 |
17 julyclyde 2023-11-10 10:46:26 +08:00 其实不存在“系统级”locale 各进程都分别有自己的环境变量。环境变量未经设置的时候,才是一次性继承自上一级进程 |