首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我在mysql中使用utf8创建数据库,字符需要多少字节?

问如果我在mysql中使用utf8创建数据库,字符需要多少字节?
EN

Database Administration用户
提问于 2020-02-04 15:45:55
回答 3查看 1.2K关注 0票数 0

假设创建一个具有utf8字符集的数据库,并创建表和插入的数据。在这里,我怀疑如果字符是1字节,那么它将只占1字节,或者它将占用3字节,因为utf8字符集。

EN

回答 3

Database Administration用户

发布于 2020-02-04 16:35:34

取决于一个角色。有的需要一个字节,有的需要-4。见http://www.fileformat.info/info/charset/UTF-8/list.htm。MySQL有两个UFT8字符集:

代码语言:javascript
复制
mysql> SHOW CHARACTER SET like 'UTF8%';
+---------+---------------+--------------------+--------+
| Charset | Description   | Default collation  | Maxlen |
+---------+---------------+--------------------+--------+
| utf8    | UTF-8 Unicode | utf8_general_ci    |      3 |
| utf8mb4 | UTF-8 Unicode | utf8mb4_general_ci |      4 |
+---------+---------------+--------------------+--------+
2 rows in set (0.01 sec)

如果一个字符是一个字节,它将在内存和磁盘上使用一个字节。如果是四-那么四。此外,字符串将使用一两个字节来编码字符串的长度。注意,utf8字符集不能对所有UTF8字符进行编码。

票数 2
EN

Database Administration用户

发布于 2020-02-08 01:51:25

CHAR(n) --根据您的MySQL副本和ROW_FORMAT的年份,CHAR可以为每个字符分配整整3个字节。

VARCHAR(n) --这将占用一个或两个字节的长度,再加上所需的字节数。也就是说,每个字符将占用CHARACTER SET utf8 (utf8mb3)的1、2或3个字节。

通常,您应该选择utf8mb4,每个字符的最大字节数为4字节。

插入文本后,请执行以下操作

代码语言:javascript
复制
SELECT col,
       HEX(col),
       LENGTH(col),      -- number of bytes
       CHAR_LENGTH(col)  -- number of characters
    FROM ... WHERE ...;

这应该让你自己看看是怎么回事。

票数 1
EN

Database Administration用户

发布于 2020-02-04 16:24:38

来自MySql文档:

每个多字节字符最多需要4个字节。

或者,如果数据库字符编码设置为utf8mb3:

每个多字节字符最多需要三个字节。

因此,是的,一个utf8字符将占用您的数据库中与它相同的大小。不多也不差。

票数 -1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/258874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档