char和varchar的对比
char和varchar的对比:
| 类型 | 特点 | 空间 | 时间 | 场景 |
|---|---|---|---|---|
| CHAR | 长度固定 | 浪费存储空间 | 效率高 | 存储小,要求效率高 |
| VARCHAR | 长度可变 | 节省存储空间 | 效率低 | 存储长度变化大,无效率要求 |
CHAR类型:
一般需要预先定义字符长度,长度范围0<= M <= 255(字节),如果不指定,则表示长度默认是1个字符(可以是汉字,每个utf8汉字3个字节),保存的数据如果没有达到指定长度,则会在右侧填充空格,MYSQL检索CHAR类型数据时,字段尾部的空格会去除(自己添加在尾部的空格也是一样)。
VARCHAR类型:
必须指定长度,长度范围0<= M <= 65535(字节),存储空间为实际长度+1个字节,MYSQL5.0以上版本,varchar(20)指20字符,varchar(M)的长度为0 <= M <= 21845。
三种存储引擎的情况:
1、MYSQL5.0以后使用InnoDB存储引擎,建议使用VARCHER,所有数据行使用指向数据列值的头指针,而且主要影响性能的因素是数据行使用的存储总量。通过节省空间,对磁盘I/O和数据存储总量比较好。
2、MYSQL5.0以前使用MyISAM存储引擎,建议使用CHER,使整个表静态化,让数据库检索更快。
3、MEMORY存储引擎,数据表目前都使用固定长度的数据行存储,使用两种数据类型没有区别。

浙公网安备 33010602011771号