mysql中char和varchar和text的区别(不看后悔,一看必懂)

版权声明:本文为博主原创文章,未经博主允许可以转载。 https://blog.csdn.net/qq_36071795/article/details/83932486

①CHAR是一种固定长度的类型,适合用在身份证号码、手机号码等定。,VARCHAR则是一种可变长度的类型。适合用在长度可变的属性。 text不设置长度, 当不知道属性的最大长度时,适合用text。

②按照查询速度: char最快, varchar次之,text最慢。

也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率

③在新版本的mysql中char(n)和varchar(n)中的n表示的都是字符数

其中char中的n最大长度是255个字符,如果是utf8编码方式, 那么char类型占255 * 3个字节。(utf8下一个字符占用1至3个字节)

varchar最大空间是65535个字节, 存放字符数量跟字符集有关系;varchar实际范围是65532或65533, 因为内容头部会占用1或2个字节保存该字符串的长度;如果字段default null(即默认值为空),整条记录还需要1个字节保存默认值null。如果是utf8编码, 那么varchar最多存65532/3 = 21844个字符。

猜你喜欢

转载自blog.csdn.net/qq_36071795/article/details/83932486