当前位置:  开发笔记 > 后端 > 正文

varchar(255)v tinyblob v tinytext

如何解决《varchar(255)vtinyblobvtinytext》经验,为你挑选了2个好方法。

我的问题是tinyblob和tinytext之间真的有什么区别吗?

买我真正的问题是什么原因,如果有的话,我会选择varchar(255)而不是tinyblob或tinytext?



1> 小智..:

主要存储要求和内存处理/速度:

在下表中,M表示非二进制字符串类型的声明列长度(以字符为单位)和二进制字符串类型的字节.L表示给定字符串值的实际长度(以字节为单位).

VARCHAR(M),VARBINARY(M):
L如果列值需要0 - 255个字节,
L则为+ 1个字节;如果值可能需要超过255个字节,则为+ 2个字节

TINYBLOB,TINYTEXT:
L+ 1个字节,其中L<2 8

另外,请看这篇文章:

对于每个正在使用的表,MySQL为4行分配内存.对于这些行中的每一行,CHAR(X)/ VARCHAR(X)列占用X个字符.

另一方面,TEXT/BLOB由8字节指针+ 1-4字节长度表示(取决于BLOB/TEXT类型).BLOB/TEXT在使用时动态分配.这将使用更少的内存,但在某些情况下,它可能会在长期内破坏您的内存.

编辑:另外,blob存储二进制数据和文本存储ASCII,这是TINYBLOB和TINYTEXT之间的唯一区别.



2> Steve K..:

VARCHAR(255)比tinyblob或tinytext更具SQL标准.因此,您的脚本和应用程序在数据库供应商之间更具可移植性.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有