MySQL中的VARCHAR(255)和TINYTEXTstringtypes有什么区别?
MySQL中的 VARCHAR(255)和TINYTEXTstringtypes有什么区别?
它们中的每一个都允许存储最大长度为255个字符的string。 存储要求也是一样的。 我应该什么时候比另一个更喜欢?
您不能将一个DEFAULT
值分配给一个TINYTEXT
并且您不能在后者上创build一个无前缀的索引。
在内部,额外的对象被分配在内存中以处理可能导致大型logging集上的内存碎片的TEXT
(包括TINYTEXT
)列。
请注意,这只涉及logging集中列的内部表示forms,而不涉及它们在磁盘上的存储方式。
使用VARCHAR
您可以将列设置为NULL
或NOT NULL
,您可以设置DEFAULT
值,但不能使用TEXT
。 如果您需要一个或两个function, NULL
和DEFAULT
,请使用VARCHAR
。
在varchar中,你必须设置一个字符的长度,而在tanytext中没有这样的事情,它保存了数据库的内存,例如:
为地址你必须定义varchar(50)比你的地址可能是50个字符或更less更糟糕的条件是你的字符多于50个字符这是varchar的限制,如果字符小于50而不是占用50个字符的内存在这种情况下,内存正在增加
所以使用tanytext它定义的字符长度取决于字符的大小,所以内存被保存