对于 mysql8.0+,大家在生产环境用的是什么排序规则?
比如 utf8mb4_0900_ai_ci
、utf8mb4_general_ci
、
utf8mb4_bin
还是其它的排序规则?有什么使用经验?
1
Oktfolio 2023-05-12 17:56:16 +08:00
utf8mb4_0900_ai_ci
|
2
brader 2023-05-12 17:56:25 +08:00
不管 5 还是 8 ,我习惯是使用 utf8mb4_general_ci ,而且你也不要分什么生产环境,这玩意就要统一,你生产一个样,开发环境一个样,是给自己埋坑吗
|
3
yifei2 2023-05-12 17:59:28 +08:00
utf8mb4_general_ci
|
4
xuanbg 2023-05-12 19:21:40 +08:00
utf8mb4_general_ci
|
5
wooke 2023-05-12 22:32:21 +08:00
utf8mb4_general_ci
|
6
546L5LiK6ZOt 2023-05-12 23:01:45 +08:00
为啥大家都用大小写不敏感的
|
7
fuchish112 2023-05-12 23:06:29 +08:00
utf8mb4_unicode_ci
|
8
flyv2x 2023-05-13 00:02:03 +08:00 2
utf8mb4_0900_ai_ci 是 MySQL 8.0.1 及以后版本的默认排序规则,它是基于 Unicode 9.0.0 的。它比 utf8mb4_general_ci 更准确,比 utf8mb4_bin 更快。
以下是几种常用排序规则的特性: utf8mb4_0900_ai_ci:这是基于 Unicode 9.0.0 的排序规则。它进行的是不区分大小写的字符比较,不区分重音。这是 MySQL 8.0 的默认排序规则,它比旧版本的排序规则更快,更准确。 utf8mb4_general_ci:这是基于 Unicode 3.0 的排序规则。它进行的是不区分大小写的字符比较,不区分重音。然而,由于它是基于较早的 Unicode 版本,所以在某些情况下,它可能会产生不准确的结果。 utf8mb4_bin:这是二进制排序规则。它进行的是区分大小写的比较,也不考虑重音和其他字符特性。它的主要优点是速度快,但在某些情况下,它可能不会产生期望的结果,特别是在进行字符串比较时。 使用哪种排序规则取决于你的特定需求。如果你需要进行快速的二进制比较,那么 utf8mb4_bin 可能是最好的选择。如果你需要进行基于最新 Unicode 版本的比较,那么 utf8mb4_0900_ai_ci 可能是最好的选择。然而,如果你的应用程序需要兼容旧版本的 MySQL 或者其他数据库,那么 utf8mb4_general_ci 可能是更好的选择。 但是,总的来说,对于大多数情况,utf8mb4_0900_ai_ci 应该是最好的选择,因为它提供了最准确和最快的结果。 |
9
Hellert 2023-05-13 00:32:14 +08:00 via Android
还有一个小区别,utf8mb4_general_ci 比较时会忽略尾部空格,utf8mb4_0900_ai_ci 不会。
|
10
liuxu 2023-05-13 02:26:22 +08:00
utf8mb4_unicode_ci
|
11
realpg 2023-05-13 10:16:16 +08:00
@546L5LiK6ZOt #6
你永远不知大傻子用户的用户名用的什么奇怪大小写 |
12
tuine 2023-05-13 10:24:55 +08:00
utf8mb4_zh_0900_as_cs
|
13
leorealman 2023-05-16 10:09:33 +08:00
保持和 5.7 一致,我们用的 utf8mb4_general_ci
|