MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。
utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。
utf8 是 Mysql 中的一种字符集,只支持最长三个字节的 UTF-8字符,也就是 Unicode 中的基本多文本平面。而一些emoji表情,占用4字节,所以utf-8下,表情会乱码,1字符装不下,需要额外的空间
而utf8mb4可以保存4 字节长度的 UTF-8 字符,所以使用utf8mb4来存储emoji表情,不常用的汉字以及新增的Unicode字符比较合适。
varchar:
varchar(255)所表示的单位是字符,而一个汉字一个字母都是一字符。所以这里可以存储255个汉字或者255个字母。
utf-8下,1字符=3字节。(uft-8也称之为utf-8mb3)
utf-8mb4下,1字符=4字节
存储上限
varchar的存储上限是65535字节
utf-8格式: varchar(21845)是上限(65535/3)
utf-8mb4: varchar(16383)是上限(65535/4)