MySQL的那些事

前言

MySQL由于开源免费等特性被广泛使用。开源,意味着功能强大,也意味着管理混乱。了解MySQL的存在的小科普,对避免日后踩坑还是很有帮助的。开一篇文章积累日常看到关于MySQL的小科普。

utf8mb4

UTF-8是文本处理中常见的字符编码方式,是一种可变长的字符编码。随着字符数量的增加,UTF-8的最长长度也在变化,一开始是1~4个字节,修正后的UTF-8中,最长可以达到6个字节。

在MySQL中,“utf8”编码只支持每个字符最多3个字节。

在UTF-8编码中,一般数字、英文、符号等占1个字节,汉字占3个字节,表情(emoji)符号占4个字节。问题来了,我们误以为MySQL中的utf8就是UTF-8,但是这时存储emoji等4字节符号就会因为长度不够的问题出现异常。MySQL的开发者的初衷可能是为了减少数据库的空间占用,但是现在,4字节以后的字符被大面积使用,问题就爆发了。

utf8mb4(utf8 max 4 bytes),MySQL给出了亡羊补牢的解决方案。utf8mb4最多可以支持4个字节的字符,这起码解决了4字节UTF-8字符无法存进数据库的问题。但是,很明显,问题依然没有从根本上解决。

参考文章

为什么不建议在 MySQL 中使用 UTF-8?
MySQL大厂面试13问

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。