MySQL 字符集
MySQL 在 5.5.3 之后增加了 utf8mb4 字符编码,mb4 即 most bytes 4。
抛开数据库,标准的 UTF-8 字符集编码是四字节编码,然而在 MySQL 里实现的 utf8 是三字节编码,只支持到了 Unicode 中的基本多文本平面(U+0000至U+FFFF),包含了控制符、拉丁文,中、日、韩等绝大多数国际字符,但并不是所有,最常见的表情字符 emoji 和一些不常用的汉字,如【🐉、𦨩】,这些字符需要四个字节才能编码出来。
排序字符集:utf8mb4_unicode_ci 与 utf8mb4_general_ci
准确性:
utf8mb4_unicode_ci 是基于标准的 Unicode 来排序和比较,能够在各种语言之间精确排序
utf8mb4_general_ci 没有实现 Unicode 排序规则,在遇到某些特殊语言或字符时,排序结果可能不是所期望的。
性能:
utf8mb4_general_ci 在比较和排序时更快
utf8mb4_unicode_ci 在少数情况下,Unicode 排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法;但在绝大多数情况下,不会发生此类复杂比较。
推荐:utf8mb4_unicode_ci。
本文由作者按照
CC BY 4.0
进行授权