MySQL中VARCHAR(255)和TINYTEXT字符串类型之间的区别是什么?
每个都允许存储最大长度为255个字符的字符串。存储要求也相同。我什么时候应该选择另一个?
答案 0 :(得分:36)
您无法为DEFAULT
分配TINYTEXT
值,也无法为后者创建无前缀索引。
在内部,在内存中分配了额外的对象来处理TEXT
(包括TINYTEXT
)列,这些列可能导致大型记录集上的内存碎片。
请注意,这只涉及列在记录集中的内部表示,而不是它们在磁盘上的存储方式。
答案 1 :(得分:5)
使用VARCHAR
您可以将列设置为NULL
或NOT NULL
,您可以设置DEFAULT
值,但不能设置TEXT
。如果您需要VARCHAR
和NULL
中的一项或两项功能,请使用DEFAULT
。
答案 2 :(得分:-2)
在varchar中你必须设置一个字符的长度,而在tanytext中没有这样的东西它保存了数据库的内存为ex:
对于地址你必须定义varchar(50)而不是你的地址可能是50 charecter或更少更糟糕的条件是你的角色超过50个字符这是varchar的限制如果字符小于50而不是占用在这种情况下,内存中的50个字符内存会增加
所以使用tanytext定义字符长度取决于字符的大小,以便保存内存