mysql常用字符集和排序规则
本文最后更新于 2024-12-11 09:50:20
utf8mb4
和 utf8mb3
的区别
utf8mb3:
- 它是一个较旧的字符集,用于存储 UTF-8 编码的字符数据,最多支持 3 字节的字符。
- 由于最多支持 3 字节,它不能存储一些超出基本多文种平面(BMP)范围的字符(例如 Emoji 表情等)。因此,它不支持所有的 Unicode 字符。
utf8mb4:
- 它是
utf8mb3
的超集,能够支持 4 字节的字符,包括所有 Unicode 字符(如 emoji 和一些亚洲特殊字符等)。 - 由于支持 4 字节,
utf8mb4
能够存储更多种类的字符,尤其是 BMP 之外的字符
- 它是
字符集 | 排序方式 | 描述 |
---|---|---|
utf8mb3 |
utf8mb3_general_ci |
不区分大小写的通用排序规则,适用于多种语言。 |
utf8mb3 |
utf8mb3_unicode_ci |
更精确的 Unicode 排序,支持更多语言。 |
utf8mb4 |
utf8mb4_general_ci |
不区分大小写的通用排序规则,适用于大多数语言。 |
utf8mb4 |
utf8mb4_unicode_ci |
更精确的 Unicode 排序,支持更多语言的复杂排序。 |
utf8mb4 |
utf8mb4_bin |
按字节顺序比较字符,区分大小写,非常精确的二进制排序规则 |
xxxxx_0900_ai_ci
**
0900
**:0900
代表 MySQL 版本 8.0(MySQL 8.0 版本引入了新的 Unicode 排序规则)。这个数字表示该排序规则是在 MySQL 8.0 中引入的,并且它基于 Unicode 9.0 规范进行优化。
**
ai
**:ai
代表 accent insensitive(不区分重音)。在进行字符比较时,这种排序规则会忽略字符中的重音符号(例如,é
和e
被视为相同的字符)。
**
ci
**:ci
代表 case insensitive(不区分大小写)。在字符比较时,它会忽略大小写的差异(例如,A
和a
被视为相同的字符)
as
= accent sensitive(区分重音)cs
= case sensitive(区分大小写
常用uft8mb4
和 utf8mb4_0900_ai_ci
mysql常用字符集和排序规则
https://one-and-one-fourth.github.io/2024/12/11/mysql/mysql常用字符集/