MySQL 整理 utf8_unicode 差异

Ada*_*dam 11 mysql

但是我一直在阅读 MySQL Collat​​ion 的重要性,到目前为止我所学到的关于兼容性和准确性的知识是这 4 个似乎是我最好的选择。

  • utf8_unicode_ci
  • utf8_unicode_520_ci
  • utf8mb4_unicode_ci
  • utf8mb4_unicode_520_ci

根据我的理解,uft8mb4 对具有多语言(字符)支持(例如日语)的字符很有用。uf8 只支持 3 个字节,而 uf8mb4 支持 4 个字节。所以听起来很明显的选择是 uf8mb4,但问题似乎是你有一个长度限制(该死!我想要我的蛋糕并吃掉它),这是一个小问题(我认为)。

然后你考虑一下520标准;它提供了更多,从我能找到的一点点来看。但这当然是问题所在,我对此知之甚少。只是人们说这是一种改进,但对改进的方式却非常含糊。

我确实想要在尽可能少的限制下获得最多的东西......我想这里有人可能知道一两件事。MySQL 官方网站并不像我希望的那样提供信息。

在这 4 种中哪一种可以提供最大的兼容性、准确性和最大的存储长度?另外,502 标准之间的真正区别是什么?

Mat*_*ens 10

Unicode 排序规则名称可能包含一个版本号,以指示排序规则所基于的 Unicode 排序算法 (UCA) 的版本。没有名称的版本号基于UCA的核对使用version-4.0.0UCA重量键。诸如utf8_unicode_520_ci基于UCA 5.2.0 weight keys 之类的排序规则名称。

请参阅https://dev.mysql.com/doc/refman/5.6/en/charset-collat​​ion-names.html

  • 它会影响排序。如果您绝对需要根据 Unicode 标准的更新(但仍然过时)版本进行排序,那么您可能需要使用 `520_ci`。对于我的网站,我不在乎。 (4认同)
  • 所以用简单的英语来说,UCA 4.0.0 和 UCA 5.2.0 之间的区别是什么,而不是更新。优点或缺点是什么? (2认同)