在MySQL中,VARCHAR(1024)
和VARCHAR(512)
之间有什么区别?如果我的项目永远不会超过512个字符,那么使用VARCHAR(1024)
会丢失什么?
答案 0 :(得分:8)
不知道从哪里得到它,但是不能在没有指定长度的情况下创建一个包含varchar的表。它会导致语法错误。所以你的问题已经过时了。
更新:
无。 Varchar的名称暗示了一个可变长度的数据类型,至少是创建表时指定的最大长度。这意味着,在每行的varchar列中,一个额外的字节用于存储行中字符串的实际长度。 因此,varchar(1024)和varchar(512)之间的区别在于,当您尝试插入超过1024或512字节时,数据会被截断。注意:字节,而不是字符。每个字符使用的字节数取决于您正在使用的字符集。
答案 1 :(得分:2)
实际上有一点不同。如果您操纵大数据,它会对性能产生很大影响。如果使用临时表,则磁盘上的记录将采用指示的全长而不是可变长度。在这种情况下,较高的值会减慢请求的速度。临时表可能由于各种原因而发生(例如内存已满,或者按顺序组合的某些组合)。
答案 2 :(得分:0)
VARCHAR(1024)1024,这是长度。
声明的CHAR和VARCHAR类型的长度指示您要存储的最大字符数。例如,CHAR(30)最多可以容纳30个字符。
答案 3 :(得分:0)
与CHAR相比,VARCHAR值存储为1字节或2字节 长度前缀加上数据。长度前缀表示 值中的字节。如果值不需要,则一列使用一个长度字节 超过255个字节,如果值可能要求大于2个字节,则为两个长度字节 255个字节。
可以发现对更大的VARCHAR的性能影响的更深入分析here.