UTF-8是Unicode的一种编码方式,适用于编码所有Unicode标准中的字符,包括基本多文种平面(BMP)和辅助多文种平面(SMP)中的字符。
UTF8-MB4又称为“UTF-8扩展”,用于支持MySQL中的四字节编码存储,该编码支持MySQL中新增的符号表情和其他一些不常用的Unicode字符。
因此,UTF8编码可以处理BMP中的字符(即U+0000至U+FFFF之间的字符),而UTF8-MB4编码可以处理辅助字符(即U+10000至U+10FFFF之间的字符)。UTF8-MB4编码比UTF8多了其中两个字节,因此可以支持更多的字符。
在MySQL中,UTF8编码存储一个字符需要最多3个字节,而UTF8-MB4编码存储一个字符需要最多4个字节。因此,如果对于长文本的表,存储较长的UTF8-MB4数据可能会影响性能,因此需要考虑选择适合数据类型和数据量的编码方式。