MySQL中的VARCHAR(255)和TINYTEXTstringtypes有什么区别?

MySQL中的 VARCHAR(255)和TINYTEXTstringtypes有什么区别?

它们中的每一个都允许存储最大长度为255个字符的string。 存储要求也是一样的。 我应该什么时候比另一个更喜欢?

您不能将一个DEFAULT值分配给一个TINYTEXT并且您不能在后者上创build一个无前缀的索引。

在内部,额外的对象被分配在内存中以处理可能导致大型logging集上的内存碎片的TEXT (包括TINYTEXT )列。

请注意,这只涉及logging集中列的内部表示forms,而不涉及它们在磁盘上的存储方式。

使用VARCHAR您可以将列设置为NULLNOT NULL ,您可以设置DEFAULT值,但不能使用TEXT 。 如果您需要一个或两个function, NULLDEFAULT ,请使用VARCHAR

在varchar中,你必须设置一个字符的长度,而在tanytext中没有这样的事情,它保存了数据库的内存,例如:

为地址你必须定义varchar(50)比你的地址可能是50个字符或更less更糟糕的条件是你的字符多于50个字符这是varchar的限制,如果字符小于50而不是占用50个字符的内存在这种情况下,内存正在增加

所以使用tanytext它定义的字符长度取决于字符的大小,所以内存被保存