char

char类型是定长的,规定占多少位,就占多少位。数据不够长度时,会用空格来进行填充,而如果数据超过定长,则会报错。

varchar

varchar类型是不定长的,也就是varchar类型对应的列的数据长度是不一样的。既然是不定长的,那么我们如何知道数据的长度呢?这里就需要特定的字节来进行标识,前两个字节用来标记字段的实际长度,结尾还需要一个字节来标识结束。

查询效率

char的查询效率是要高于varchar的查询效率的。
一种比较简单的理解,char是定长的,系统在进行查找指定字段的时候,只需要根据指定字节的长度进行检索就好,不涉及大量的计算。相反,由于varchar是不定长的,该类型还包含了开头标识和结束标识,系统想要检索特定的字段,还需要对这些标识内的数据长度进行大量的运算,因此,相比于char类型,查询效率自然要低不少。

应用场景

不论什么应用场景,都需要围绕着char和varchar类型的两个基本特性来考量,也就是定长和不定长,这对应了现实中的一些数据,各有各的好处。比如对于定长数据,电话号码,性别,身份证号等,我们就是用char类型,可以提高查询效率。而对于邮箱,姓名,物体名称等不定长的数据,使用varchar则可以节约大量的数据空间。




char

char类型是定长的,规定占多少位,就占多少位。数据不够长度时,会用空格来进行填充,而如果数据超过定长,则会报错。

varchar

varchar类型是不定长的,也就是varchar类型对应的列的数据长度是不一样的。既然是不定长的,那么我们如何知道数据的长度呢?这里就需要特定的字节来进行标识,前两个字节用来标记字段的实际长度,结尾还需要一个字节来标识结束。

查询效率

char的查询效率是要高于varchar的查询效率的。
一种比较简单的理解,char是定长的,系统在进行查找指定字段的时候,只需要根据指定字节的长度进行检索就好,不涉及大量的计算。相反,由于varchar是不定长的,该类型还包含了开头标识和结束标识,系统想要检索特定的字段,还需要对这些标识内的数据长度进行大量的运算,因此,相比于char类型,查询效率自然要低不少。

应用场景

不论什么应用场景,都需要围绕着char和varchar类型的两个基本特性来考量,也就是定长和不定长,这对应了现实中的一些数据,各有各的好处。比如对于定长数据,电话号码,性别,身份证号等,我们就是用char类型,可以提高查询效率。而对于邮箱,姓名,物体名称等不定长的数据,使用varchar则可以节约大量的数据空间。