我想知道,如果我有一个200个字符的VARCHAR并且我输了100个字符的字符串,它会使用200个字节还是只使用字符串的实际大小?
答案 0 :(得分:85)
100个字符。
这是varchar
中的 var (变量):您只存储您输入的内容(以及额外的2个字节,存储长度最多为65535)
如果是char(200)
那么你总是存储200个字符,填充100个空格
答案 1 :(得分:11)
VARCHAR意味着它是一个可变长度的字符,所以它只是 将占用尽可能多的空间。但如果你知道的话 关于底层结构,限制VARCHAR可能是有意义的 到某个最大数量。
例如,如果您要存储来自用户的评论,您可以 将注释字段限制为仅4000个字符;如果是这样,它没有 真的有意义让sql表有一个更大的字段 比VARCHAR(4000)。
答案 2 :(得分:4)
实际上,它需要101个字节。