Is it wise to declare a VARCHAR with a value greater than 255 in MySQL?
我刚刚在文档中注意到,在MySQL 5.0.3以上的版本中,可以声明值大于255的varchar。在过去,我已经为任何大于255的数据类型进行了切换,但是我想知道现在用varchar(1000)定义更大的字符串值或合适的长度是否是更好的做法。
这在其他数据库中也很常见吗,还是最好使用255作为最大值,并更改上面的数据类型?
在我看来,我不鼓励接近。当您需要超过255个字符时,使用文本更合适。
更新:varchar现在限制为65535字节,但是mysql中的一行不能包含超过65535字节。
您必须知道varchar和类似的字段是直接存储在数据库中的,例如,当文本存储在行外时,这就是为什么行内的指针链接到它。
因此,如果要使用big varchar,请确保它们不会太大,并且不会干扰行中的其余数据。
例如,多个varchar字段最多可包含65K个字符是一个坏主意。
正如答案@eric指出的那样,varchar存储在表中,而文本存储在单独的文件中——在设计表结构时,您必须记住的唯一真正重要的一点是行大小限制(mysql将每个行/记录限制为65kb)。
我建议您使用varchars作为"一行程序"——任何有文本输入作为数据源的程序。
如果使用每个字符一个字节的
如果使用存储多字节字符的字符集,则只能将长度设置为字符集允许的长度。例如,