MySQL中的VARCHAR和CHAR有什么区别?
我正在尝试存储MD5哈希。
MySQL中的VARCHAR和CHAR有什么区别?
我正在尝试存储MD5哈希。
当前回答
CHAR
用于存储固定长度的字符串值。 最大数目。数据类型可以容纳255个字符。 它比VARCHAR快50%。 使用静态内存分配。
VARCHAR
用于存储可变长度的字母数字数据。 此数据类型所能容纳的最大值是 Pre-MySQL 5.0.3: 255个字符。 后mysql 5.0.3:为行共享65,535个字符。 它比CHAR慢。 使用动态内存分配。
其他回答
字符:
同时支持字符和数字。 支持2000个字符。 固定长度。
VARCHAR:
同时支持字符和数字。 支持4000字符。 可变长度。
任何评论 ......!!!!
Char或varchar-用于输入文本数据,长度可以用括号表示 Eg- name char (20)
MySQL中的VARCHAR和CHAR有什么区别?
对于已经给出的答案,我想补充一点,在OLTP系统或频繁更新的系统中,即使对于可变大小的列也可以考虑使用CHAR,因为在更新期间可能会出现VARCHAR列碎片。
我正在尝试存储MD5哈希。
如果安全性真的很重要,MD5哈希并不是最好的选择。然而,如果您将使用任何哈希函数,请考虑使用BINARY类型代替它(例如,MD5将产生16字节哈希,因此BINARY(16)将足够代替CHAR(32)用于表示十六进制数字的32个字符。这将节省更多空间并提高性能。
CHAR
用于存储固定长度的字符串值。 最大数目。数据类型可以容纳255个字符。 它比VARCHAR快50%。 使用静态内存分配。
VARCHAR
用于存储可变长度的字母数字数据。 此数据类型所能容纳的最大值是 Pre-MySQL 5.0.3: 255个字符。 后mysql 5.0.3:为行共享65,535个字符。 它比CHAR慢。 使用动态内存分配。
如果输入的字符比声明的长度短,Varchar将截断尾随空格,而char则不会。Char将填充空格,并且始终是声明的长度。在效率方面,varchar更熟练,因为它修剪字符,允许更多的调整。但是,如果您知道char的确切长度,则char将以更快的速度执行。