Rob*_*ert 6 mysql database varchar tinytext sqldatatypes
据我所知,VARCHAR(255)
一切都TINYTEXT
可以做到.VARCHAR
具有相同的存储大小,它是ISO标准的一部分,它允许除null之外的默认值.我看不出任何使用理由TINYTEXT
.但它存在,所以也许是有原因的.
是否存在TINYTEXT
大小,速度或其他考虑因素的首选数据类型?
我能想到的,唯一的情况TINYTEXT
可能会有所帮助就是如果你有真正的大排.内容VARCHAR
列计数反对65,535字节的最大行大小,但TEXT
和BLOB
数据没有; 一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字节指向外部数据的指针组成,因此a TINYTEXT
增加21字节到行长度.但是,当外部值小于40个字节时,数据将内联存储在行中.因此,对于TINYTEXT
少于40个字节,存储类似于VARCHAR(255)
,并且它全部计入行长度限制.
归档时间: |
|
查看次数: |
1296 次 |
最近记录: |