MySQL中的VARCHAR和CHAR有什么区别?

我正在尝试存储MD5哈希。


当前回答

CHAR

用于存储固定长度的字符串值。 最大数目。数据类型可以容纳255个字符。 它比VARCHAR快50%。 使用静态内存分配。

VARCHAR

用于存储可变长度的字母数字数据。 此数据类型所能容纳的最大值是 Pre-MySQL 5.0.3: 255个字符。 后mysql 5.0.3:为行共享65,535个字符。 它比CHAR慢。 使用动态内存分配。

其他回答

CHAR

使用特定的内存分配 时间效率

VARCHAR

使用动态分配内存 记忆效率

区分这两者对完整性方面也有好处。

如果你希望存储有长度规则的东西,比如yes或no,那么你可以使用char(1)来存储Y或n。对于货币代码也很有用,你可以使用char(3)来存储像USD, EUR或AUD这样的东西。

varchar更适合那些除了限制长度之外没有一般规则的情况。它适用于名称或描述之类的东西,在这些地方,值的长度会有很多变化。

然后出现了文本数据类型,并在工作中使用了扳手(尽管它通常只是没有定义上限的varchar)。

CHAR是一个固定长度的字段;VARCHAR是一个变长字段。如果您存储的字符串长度变化很大,例如名称,则使用VARCHAR,如果长度总是相同,则使用CHAR,因为它的大小效率略高,也略快。

如果输入的字符比声明的长度短,Varchar将截断尾随空格,而char则不会。Char将填充空格,并且始终是声明的长度。在效率方面,varchar更熟练,因为它修剪字符,允许更多的调整。但是,如果您知道char的确切长度,则char将以更快的速度执行。

字符:

同时支持字符和数字。 支持2000个字符。 固定长度。

VARCHAR:

同时支持字符和数字。 支持4000字符。 可变长度。

任何评论 ......!!!!