一尘不染

MariaDB / MySQL中的utf8mb4_unicode_ci和utf8mb4_unicode_520_ci归类之间的区别?

mysql

我登录到MariaDB / MySQL并输入:

SHOW COLLATION;

我看到的utf8mb4_unicode_ciutf8mb4_unicode_520_ci可用的排序规则之一。这两种归类之间有什么区别,我们应该使用哪个?


阅读 632

收藏
2020-05-17

共1个答案

一尘不染

那么,您将需要阅读文档。我无法告诉您应该使用什么,因为每个项目都不同。

10.1.3归类命名约定

MySQL归类名称遵循以下约定:

排序规则名称以与之关联的字符集的名称开头,后跟一个或多个后缀,表示其他排序规则特性。例如,utf8_general_ci和latin_swedish_ci分别是utf8和latin1字符集的排序规则。

特定于语言的归类包括语言名称。例如,utf8_turkish_ci和utf8_hungarian_ci分别使用土耳其语和匈牙利语规则对utf8字符集的字符进行排序。

排序的区分大小写由_ci(不区分大小写),_
cs(区分大小写)或_bin(二进制;字符比较基于字符二进制代码值)表示。例如,latin1_general_ci不区分大小写,latin1_general_cs不区分大小写,并且latin1_bin使用二进制代码值。

对于Unicode,归类名称可以包括版本号,以指示归类所基于的Unicode归类算法(UCA)的版本。名称中没有版本号的基于UCA的归类使用版本4.0.0
UCA配重键。例如:

utf8_unicode_ci(未命名版本)基于UCA
4.0.0重量键>(http://www.unicode.org/Public/UCA/4.0.0/allkeys-4.0.0.txt)。

utf8_unicode_520_ci基于UCA
5.2.0重键(http://www.unicode.org/Public/UCA/5.2.0/allkeys.txt)。

对于Unicode,xxx_general_mysql500_ci归类保留原始xxx_general_ci归类在5.1.24之前的顺序,并允许升级在MySQL
5.1.24之前创建的表。有关更多信息,请参见第2.11.3节“检查是否必须重建表或索引”和第2.11.4节“重建或修复表或索引”。

来源:https : //dev.mysql.com/doc/refman/5.6/en/charset-collat​​ion-
names.html

2020-05-17