MySQL 中 utf8mb4 的存储性质
在知乎的讨论中,有人提出 MySQL 引入 utf8mb4 数据类型的原因。本文将探讨 utf8mb4 的存储特性,以回答此问题。
utf8mb3 与 utf8mb4 的存储
MySQL 中原本的 utf8mb3 存储字符集最多三个字节一个字符,而 utf8mb4 支持四个字节的存储。
在之前,由于 MyISAM 存储引擎是默认引擎,其具有静态表格特性,使得 utf8mb3 的存储长度固定为最长三个字节。然而,在 InnoDB 成为默认引擎后,此特性不再适用。因此,在所有引擎中,utf8mb4 的存储长度都是可变的。
BMP 字符的存储
在 Unicode 中,BMP(基本多语言平面)包含了绝大多数常见语言的常见字符。对于 BMP 字符,utf8mb3 和 utf8mb4 具有相同的存储特性,长度为一到三个字节。这意味着在存储 BMP 字符时,utf8mb4 并不会占据额外的存储空间。
补充字符的存储
除了 BMP 字符之外,Unicode 还包含一些补充字符,这些字符位于 BMP 之外。utf8mb3 无法存储补充字符,而 utf8mb4 则可以。当将 utf8mb3 列转换为 utf8mb4 列时,这些补充字符不会被转换,因为 utf8mb3 中原本就不存在这些字符。
因此,utf8mb4 的存储长度取决于存储的字符集。对于 BMP 字符,它与 utf8mb3 长度相同。对于补充字符,它则需要四个字节的存储空间。
以上就是为什么 MySQL 引入 utf8mb4 数据类型?的详细内容,更多请关注慧达安全导航其它相关文章!
免责 声明
1、本网站名称:慧达安全导航
2、本站永久网址:https//www.huida178.com/
3、本站所有资源来源于网友投稿和高价购买,所有资源仅对编程人员及源代码爱好者开放下载做参考和研究及学习,本站不提供任何技术服务!
4、本站所有资源的属示图片和信息不代表本站的立场!本站只是储蓄平台及搬运
5、下载者禁止在服务器和虚拟机下进行搭建运营,本站所有资源不支持联网运行!只允许调试,参考和研究!!!!
6、未经原版权作者许可禁止用于任何商业环境,任何人不得擅作它用,下载者不得用于违反国家法律,否则发生的一切法律后果自行承担!
7、为尊重作者版权,请在下载24小时内删除!请购买原版授权作品,支持你喜欢的作者,谢谢!
8.若资源侵犯了您的合法权益,请持 您的版权证书和相关原作品信息来信通知我们!QQ:1247526623我们会及时删除,给您带来的不便,我们深表歉意!
9、如下载链接失效、广告或者压缩包问题请联系站长处理
10、如果你也有好源码或者教程,可以发布到网站,分享有金币奖励和额外收入!
11、本站资源售价只是赞助,收取费用仅维持本站的日常运营所需
12、因源码具有可复制性,一经赞助,不得以任何形式退款。
13、本文内容由网友自发贡献和站长收集,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系1247526623@qq.com
转载请注明出处: 慧达安全导航 » 为什么 MySQL 引入 utf8mb4 数据类型?
发表评论 取消回复