MySQL 8.3 Release Notes
utf8mb4 字符集具有以下特征:
-
支持 BMP 和补充字符。
-
每个多字节字符最多需要四个字节。
utf8mb4
与 utf8mb3
字符集不同,后者仅支持 BMP 字符,并且每个字符最多需要三个字节:
-
对于 BMP 字符,
utf8mb4
和utf8mb3
具有相同的存储特征:相同的代码值、相同的编码、相同的长度。 -
对于补充字符,
utf8mb4
需要四个字节来存储,而utf8mb3
无法存储该字符。当将utf8mb3
列转换为utf8mb4
时,不需要担心转换补充字符,因为不存在补充字符。
utf8mb4
是 utf8mb3
的超集,因此对于以下操作,结果将具有 utf8mb4
字符集和 utf8mb4_col
排序:
SELECT CONCAT(utf8mb3_col, utf8mb4_col);
类似地,以下 WHERE 子句中的比较将根据 utf8mb4_col
排序进行:
SELECT * FROM utf8mb3_tbl, utf8mb4_tbl
WHERE utf8mb3_tbl.utf8mb3_col = utf8mb4_tbl.utf8mb4_col;
有关多字节字符集与数据类型存储相关的信息,请参阅 字符串类型存储要求。