utf8 是 Mysql 中的一种字符集,只支持最长三个字节的字符(标点符号,英文,汉字等)。
utf8mb4 完全兼容utf8,最长支持4个字节(四个字节的字符如表情符号:😂)
答案是:不会的。
CREATE TABLE `test` (
`t1` varchar(255) CHARACTER SET utf8,
`t2` varchar(255) CHARACTER SET utf8mb4
) ;
- 存储 数字1,字母a,半角符号;,查看两个字段的占用字节(结果:占用内存相同,每个字符占用1个字节)
- 存储 汉字和全角符号,查看两个字段的占用字节(结果:占用内存相同,每个字符占用3个字节)
- 存储 表情,查看两个字段的占用字节(结果:utf8编码可以存3的特殊符号不能保存4字节的表情,utf8mb4编码可以存4字节的表情。)
如果存储的内容不涉及表情,使用utf8,utf8mb4都可以,两者占用的内存也完全相同,使用 uft8mb4 编码不会占用更多的内存。如果需要存储表情,必须使用utf8mb4,并且一个表情占用4个字节。