MySQL中的VARCHAR(255)和TINYTEXT字符串类型有什么区别?

时间:2010-02-18 12:43:07

标签: mysql types

MySQL中VARCHAR(255)和TINYTEXT字符串类型之间的区别是什么?

每个都允许存储最大长度为255个字符的字符串。存储要求也相同。我什么时候应该选择另一个?

3 个答案:

答案 0 :(得分:36)

您无法为DEFAULT分配TINYTEXT值,也无法为后者创建无前缀索引。

在内部,在内存中分配了额外的对象来处理TEXT(包括TINYTEXT)列,这些列可能导致大型记录集上的内存碎片。

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

答案 1 :(得分:5)

使用VARCHAR您可以将列设置为NULLNOT NULL,您可以设置DEFAULT值,但不能设置TEXT。如果您需要VARCHARNULL中的一项或两项功能,请使用DEFAULT

答案 2 :(得分:-2)

在varchar中你必须设置一个字符的长度,而在tanytext中没有这样的东西它保存了数据库的内存为ex:

对于地址你必须定义varchar(50)而不是你的地址可能是50 charecter或更少更糟糕的条件是你的角色超过50个字符这是varchar的限制如果字符小于50而不是占用在这种情况下,内存中的50个字符内存会增加

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