我的问题是Tinyblob和Tinytext之间真的有什么区别吗?
买我真正的问题是什么原因,如果有的话,我会选择varchar(255)而不是tinyblob或tinytext?
最佳答案
主要storage requirements和内存处理/速度:
在下表中,M
表示以字符表示的非二进制字符串类型的声明列长度,以字节表示的是二进制字符串类型的声明列长度。L
表示给定字符串值的实际长度(字节)。
varchar(M
),varbinary(M
):L
>+1
如果列值需要0–255,则为字节
字节,L
>+2 bytes if values may
需要超过255个字节
Tinyblob,Tinytext:L
>+1 bytes,其中L
>此外,请参见帖子:
对于使用中的每个表,mysql都分配
4行内存。对于每一个
行char(x)/varchar(x)列采用
向上x个字符。
另一方面,文本/blob是
由8字节指针+A表示
1-4字节长度(取决于
blob/文本类型)。blob/text是
使用时动态分配。这将
使用较少的内存,但在某些情况下
可能会把你的记忆碎片化
跑。
编辑:顺便说一句,blobs存储二进制数据,文本存储ASCII,这是tinyblob和tinytext之间的唯一区别。
关于sql - varchar(255)v tinyblob v tinytext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/143933/