MySQL中关于char和varchar类型的区别
2017-06-07 本文已影响0人
LeeBoot
类型 | 长度 | 范围(非空) | 范围(可空) | 用途 | |
---|---|---|---|---|---|
char | 固定 | 255【字节】 | 65533【字节】 | ||
varchar | 可变 | 254【字节】 | 65532【字节】 |
以下是MySQL官方说明:
CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
CHAR列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。当检索到CHAR值时,尾部的空格被删除掉。在存储或检索过程中不进行大小写转换。
VARCHAR列中的值为可变长字符串。长度可以指定为0到65,535之间的值。(VARCHAR的最大有效长度由最大行大小和使用的字符集确定。整体最大长度是65,532字节)。
同CHAR对比,VARCHAR值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)
以下是个人见解:
-
char 固定长度,所以在处理速度上要比varchar快速很多,但是对费存储空间,所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例;
-
举例说明所占存储字节长度:
char(5) -->5个字节;varchar(5)-->6个字节 -
长度小于4个字符的char数据列不会被转换为varchar类型
希望对你有所帮助