gpt4 book ai didi

mysql - 有任何理由使用 TINYTEXT 吗?

转载 作者:可可西里 更新时间:2023-11-01 06:42:31 25 4
gpt4 key购买 nike

据我所知,VARCHAR(255) 可以做 TINYTEXT 可以做的一切。 VARCHAR 具有相同的存储大小,它是 ISO 标准的一部分,它允许除 null 之外的默认值。我看不出有任何理由使用 TINYTEXT。但它存在,所以也许是有原因的。

是否存在 TINYTEXT 是出于大小、速度或其他考虑因素的首选数据类型的情况?

最佳答案

我能想到 TINYTEXT 可能有用的唯一情况是您有真的 大行。 VARCHAR 列的内容计入 65,535 字节的最大行大小,但 TEXTBLOB 数据不计入; TINYTEXT 列仅向行大小添加 1 个字节。

实际上,对于 InnoDB 表,事情要复杂一些。 InnoDB 存储在以下页面中进行了描述:

https://dev.mysql.com/doc/refman/5.7/en/innodb-physical-record.html https://dev.mysql.com/doc/refman/5.7/en/innodb-row-format-dynamic.html https://dev.mysql.com/doc/refman/5.7/en/innodb-compression-internals.html

总而言之,表中受上述 TINYTEXT 限制的部分存储的数据由一个 1 字节长度的字段和一个 20 字节的指向外部数据的指针组成,因此TINYTEXT 向行长度添加 21 个字节。但是,当外部值小于 40 字节时,数据将内联存储在行中。所以对于小于40字节的TINYTEXT,其存储量与VARCHAR(255)类似,都计入行长限制。

关于mysql - 有任何理由使用 TINYTEXT 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35760158/

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