MySQL 的字符集与排序规则
通俗讲字符集就是字符码的集合,在 MySQL 中字符集的选择影响字符码的存储,字符集选择不好不仅影响存储展示还会有问题,例如乱码。
在业务中常用的字符集是 UTF-8
字符集,mysql 有两种这样的字符集:utf8、utf8mb4,它们的区别如下:
- utf8: 支持最长 3 Byte 的字符编码,但一部分
UTF-8
的 4 Byte 编码不支持,例如 emoji。 - utf8mb4:支持最长 4 Byte 的字符编码。这是业务中使用最多的字符集,从 MySQL 8.0 开始成为默认字符集。
字符的排序规则(collate):字符在比较、排序时以及大小写敏感的规则。涉及字符比较的操作均与其相关,例如:排序、分组、索引、比较(=、>、<等)。MySQL 中有些字符排序规则是忽略大小写的,例如 utf8mb4_general_ci
排序规则,这种带有 ci
后缀的是大小写不敏感的标志(ci 即 case insensitive 的缩写)。