mysql 数据库学习

Good Luck To You!

为什么 MySQL 引入 utf8mb4 数据类型

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 中原本就不存在这些字符。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«   2024年12月   »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接
    • RainbowSoft Studio Z-Blog
    • 订阅本站的 RSS 2.0 新闻聚合

    Powered By Z-BlogPHP 1.5.2 Zero

    Copyright Your WebSite.Some Rights Reserved. 备案号:鄂ICP备2024085846号-2