区别 | char | varchar |
---|---|---|
最大长度 | 255字符 | 65535字符 |
长度设置 | 定长 | 变长 |
空间使用 | 浪费空间 | 节省空间 |
查找效率 | 较高 | 较低 |
解读varchar(20)
字段最多存放20个字符
varchar(20)和varchar(200)存放“MySQL”字符串的占用空间都是一样的
但varchar(200)排序时所占用的内存更多
补充说明
1)char存储数据时,数据段间没有间隔,且在创建列时已经确定列的长度,因此查询数据只需按部就班即可,效率高。
varchar存储数据时,每个数据段开头都要预留空间存放数据段的长度,数据段尾还有一段空间标记此字段的节数。因此遍历数据时,
读取时间更长,查询效率更低。
2)存储很短的数据,推荐用char类型。如(1)所分析,varchar还要1个字节的长度去存储信息长度,所以得不偿失。
3)数据长度固定,用char,定长类型,类似(2)。
4)经常改变数据的列,用char。varchar每次存储都需要额外的计算工作,char则不容易产生碎片。
5)该字段数据集的最大长度比平均长度长很多,用varchar。
6)varchar(5)和varchar(150)都存储“linux",虽然空间开销相同,但后者(更长的列)会消耗更多的内存,所以用多少,设多少。