属性名称CHARACTER SET
⚠️ 注意: 在MySQL中请使用utf8mb4
, 永远不要使用utf8
.
utf8 是 Mysql 中的一种字符集,只支持最长三个字节的 UTF-8 字符.
MySQL的“utf8”实际上不是真正的UTF-8。 “utf8”只支持每个字符最多三个字节,而真正的UTF-8是每个字符最多四个字节。可以说MySQL的“utf8”是一种“专属的编码”,它能够编码的Unicode字符并不多。
2010年发布了一个叫作“utf8mb4”的字符集, 在MySQL在5.5.3之后增加了这个utf8mb4的编码, mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。
常见的emoji
在这个字符集中也被支持了. 就像这样 😊 !
属性名称COLLATE
字符除了需要存储,还需要排序或比较大小。
MySQL 8.0 默认的排序规则 ,属于 utf8mb4_unicode_ci 中的一种.
准确性: utf8mb4_unicode_ci 是基于标准的 Unicode 来排序和比较,能够在各种语言之间精确排序 性能: utf8mb4_unicode_ci 在特殊情况下,Unicode 排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。
准确性: utf8mb4_general_ci 没有实现 Unicode 排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。 性能: utf8mb4_general_ci 在比较和排序的时候更快
*_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的, 将字符串每个字符用二进制数据编译存储,区分大小写,而且可以存二进制的内容。
本文由 ez 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。