MySQL中关于char和varchar类型的区别

类型 长度 范围(非空) 范围(可空) 用途
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类型

希望对你有所帮助

你可能感兴趣的:(MySQL中关于char和varchar类型的区别)