utf8_unicode_ci表示CHARACTER SET utf8,它只包含1、2和3字节的UTF-8字符。因此,它排除了大多数Emoji和一些中文字符。 utf8mb4_unicode_ci意味着CHARACTER SET utf8mb4是4字节CHARACTER SET utf8mb4的对应COLLATION。 多年来,Unicode组织一直在改进规范。以下是从其“版本”到MySQL排序规则的Map:
4.0 _unicode_
5.20 _unicode_520_
9.0 _0900_
14.0 _uca1400_ai_ci etc. as/ai and cs/ci (MariaDB-10.10, not MySQL)
_bin -- just compare the bits; don't consider case folding, accents, etc
_ci -- explicitly case insensitive (A=a) and implicitly accent insensitive (a=á)
_ai_ci -- explicitly case insensitive and accent insensitive
_as (etc) -- accent-sensitive (etc)
性能:
_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
1条答案
按热度按时间bkhjykvo1#
utf8_unicode_ci
表示CHARACTER SET utf8
,它只包含1、2和3字节的UTF-8字符。因此,它排除了大多数Emoji和一些中文字符。utf8mb4_unicode_ci
意味着CHARACTER SET utf8mb4
是4字节CHARACTER SET utf8mb4
的对应COLLATION
。多年来,Unicode组织一直在改进规范。以下是从其“版本”到MySQL排序规则的Map:
大多数差异将出现在大多数人从未遇到过的领域。举个例子:在某种程度上,一个变化允许Emoji以某种方式区分和排序。
后缀(MySQL doc):
性能:
但是:排序规则的速度通常是查询中最小的性能问题。
INDEXes
、JOINs
、子查询、表扫描等对性能更为关键。