字符集和排序规则
字符集
MySQL 常用的字符集主要有两种:
utf8
(又称为utf8mb3
)utf8mb4
早期 MySQL 的 utf8
实际上是 utf8mb3
,它最多只支持每个字符 3 个字节,无法存储部分特殊字符(如 emoji 表情等需要 4 字节的字符)。因此,推荐直接使用 utf8mb4
,它完全兼容 utf8
,并且支持所有 Unicode 字符,包括 emoji 和部分生僻汉字。 现在新项目建议无脑使用 utf8mb4
,避免后续字符集兼容性问题。
排序规则(Collation)
如果使用 utf8mb4
,常用的排序规则有:
utf8mb4_unicode_ci
:基于 Unicode 标准, 不区分大小写 ,适合大多数国际化场景。utf8mb4_general_ci
:效率略高于 unicode_ci ,但排序准确性稍差,也是不区分大小写。utf8mb4_bin
: 区分大小写和二进制内容 ,比较严格。
排序规则会影响 SQL 查询时字符串的比较和排序方式。例如,后缀为 ci (case-insensitive)的排序规则是不区分大小写的,而后缀为 bin (binary)的排序规则则区分大小写和二进制差异。
总结: 排序规则(Collation)决定了字符串在比较和排序时的行为,常见的选择是 utf8mb4_unicode_ci
,如果有特殊需求(如区分大小写),可以选择 utf8mb4_bin
。
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据