Site icon 时鹏亮的Blog

MySQL字符集的选择

请知悉:本文最近一次更新为 6年 前,文中内容可能已经过时。

池建强的MacTalk发布了一篇文章:永远不要在 MySQL 中使用「utf8」
后找到原文:记住,永远不要在MySQL中使用“utf8”编码

发现这确实是一个误区~没有深入了解差别的人,还真的会出问题,用了默认的utf8。

公众号的文章推荐用utf8mb4字符集,我查阅了一些前人的分享,如下是整理的相关信息:

MySQL里实现的utf8最长使用3个字节,也就是只支持到了 Unicode 中的 基本多文本平面 (U+0000至U+FFFF),包含了控制符、拉丁文,中、日、韩等绝大多数国际字符,但并不是所有,最常见的就算现在手机端常用的表情字符 emoji和一些不常用的汉字。

而标准的 UTF-8 字符集编码是可以用 1~4 个字节去编码21位字符。这就导致用了utf8字符串的数据库是有一些字符写不进去的情况发生。

MySQL在 5.5.3 之后增加了 utf8mb4 字符编码,mb4即 most bytes 4。简单说 utf8mb4 是 utf8 的超集并完全兼容utf8,能够用四个字节存储更多的字符。

所以,建议数据库的字符集和程序连接时set的字符集,都指定为utf8mb4。

那么第二个问题来了,utf8mb4_ unicode_ ci 与 utf8mb4_ general_ ci 如何选择,这俩有什么差别?

主要从排序准确性和性能两方面看:

至此,反正心里有个数,选utf8mb4就对了,至于二者选哪个,我一直习惯utf8_general_ci,所以打算忽略建议。

以上相关信息摘录整理自:mysql使用utf8mb4经验吐血总结

suoyi


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《MySQL字符集的选择》相关的博文:

Exit mobile version