Mysql 什么';utf8_unicode_ci和utf8mb4_0900_ai_ci之间的区别是什么
mysql中的Mysql 什么';utf8_unicode_ci和utf8mb4_0900_ai_ci之间的区别是什么,mysql,unicode,Mysql,Unicode,mysql中的utf8mb4\u 0900\u ai\u ci和utf8\u unicode\u ci数据库文本编码之间有什么区别(特别是在性能方面) 更新: utf8mb4_unicode_ci和utf8mb4_0900_ai_ci之间存在类似的差异 编码是相同的。也就是说,字节看起来是一样的 字符集是不同的。utf8mb4具有更多字符 排序规则(如何进行比较)是不同的 表现不同,但很少有关系 utf8\u unicode\u ci表示字符集utf8,它只包括1、2和3字节的UTF-8字符。
utf8mb4\u 0900\u ai\u ci
和utf8\u unicode\u ci
数据库文本编码之间有什么区别(特别是在性能方面)
更新:
utf8mb4_unicode_ci和utf8mb4_0900_ai_ci之间存在类似的差异- 编码是相同的。也就是说,字节看起来是一样的
- 字符集是不同的。utf8mb4具有更多字符
- 排序规则(如何进行比较)是不同的
- 表现不同,但很少有关系
utf8\u unicode\u ci
表示字符集utf8
,它只包括1、2和3字节的UTF-8字符。因此,它排除了大多数表情符号和一些汉字
utf8mb4\u unicode\u ci
表示字符集utf8mb4
是4字节字符集utf8mb4
对应的排序规则
Unicode组织多年来一直在改进该规范。以下是从其“版本”到MySQL排序规则的映射:
4.0 _unicode_
5.20 _unicode_520_
9.0 _0900_
大多数差异将出现在大多数人从未遇到的领域。举个例子:在某个时刻,一个改变允许表情符号以某种方式被区分和排序
后缀():
性能:
_bin -- simple, fast
_general_ci -- fails to compare multiple letters; eg ss=ß, so somewhat fast
... -- slower
_900_ -- (8.0) much faster because of a rewrite
但是:排序速度通常是查询中性能问题中最小的一个<代码>索引
、连接
、子查询、表扫描等对性能更为关键。这些是排序规则,用于控制数据排序方式mbX
表示多字节(以X字节存储一个字符),0900
是排序算法,ai
表示不区分重音,ci
表示不区分大小写utf8mb4_unicode_ci
和utf8mb4_0900_ai_ci
?@KamilKiełczewski-是。@bughteroper-utf8mb4的最大字符是4字节。这适用于所有utf8mb4排序规则(“utf8mb4_*,包括那一个)。@Stalinko-来自OracleOpenWorld。一位开发人员指出,8.0对排序规则代码进行了大量重写,并指出它要快得多。(我还没有设计一个实际的测试用例来验证或量化加速。)@斯大林科-测量转换前后的时间。并让我们知道。
_bin -- simple, fast
_general_ci -- fails to compare multiple letters; eg ss=ß, so somewhat fast
... -- slower
_900_ -- (8.0) much faster because of a rewrite