gpt4 book ai didi

mysql - TEXT 和 LONGTEXT 的最小大小

转载 作者:行者123 更新时间:2023-11-29 12:15:16 25 4
gpt4 key购买 nike

我的数据库的一列存储了很长的文本。大多数文本都小于 TEXT 的限制 (64KB)。然而,其中大约 0.1% 是长文本 (> 64KB)。最初我使用 TEXT 作为列数据类型,并且我必须忽略长文本的条目。但如果我使用 LONGTEXT 作为数据类型,我发现数据库大小会增加一倍。长文本条目的总大小应远小于普通文本条目的总大小。

TEXT 和 LONGTEXT 是否存在某种“最小大小”,使得 LONGTEXT 数据类型的每个条目大于 TEXT 数据类型的条目并导致存储差异?

更具体地说,一个 TEXT 数据类型的条目大约需要 1KB。一个 LOnGTEXT 条目大约需要 2KB。

我使用的是innoDB,其他列的类型是:

varchar(50)整数(10)varchar(70)varchar(12)varchar(7)varchar(50)varchar(50)日期时间

最佳答案

MySQL 内联存储 BLOB 数据(包括 TEXTLONGTEXT),并在其前面添加字节计数前缀。 TEXT 将计数存储在两个字节的前缀中,因此它最多可以存储 2^16 - 2 个字节的信息。 LONGTEXT 将计数存储在四字节前缀中,因此最多可以存储 2^32 - 4 字节的信息。

将字段存储为LONGTEXT 不会自动导致数据库大小加倍,因为唯一加倍的是前缀的大小。但是,将其从 TEXT 更改为 LONGTEXT 理论上可能会使大小增加一倍,因为 MySQL 在更改信息时会复制信息并且不会自动释放完成后就可以了。

关于mysql - TEXT 和 LONGTEXT 的最小大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29921375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com