十七、MySQL基础系列笔记之选择合适的数据类型
创建数据表时,每一个字段都会有一个类型,如何为一个字段选择合适的类型?举个栗子,存储一个的年龄,varchar、char、int...都可以存,哪一个最合适?理论人一个人活不过200岁了,用int显示存在在极大的浪费。无符号的int恰好,且只占一个字节的大小。
char与varchar
char与varchar都是用来存储字符串,但它们保存和检索的方式不同。
char(4)与varchar(4)严格模式中存储超出长度的数据会报错。
char是固定长度,它的处理速度比varchar快,缺点就是浪费存储空间。
MySQL不同的存储引擎中如何选择char与varchar
- MyISAM存储引擎:使用固定长长度的数据列替代可变长度的数据列;
- InnoDB存储引擎:使用varchar类型
总结:varchar和char的区别
1)char是固定长度,范围是0~255;保存char类型时,右边填充空格达到指定长度;检索char时,尾部空格被删除;存储或检索过程中不进行大小写转换;char处理速度比varchar快,但是存在浪费存储空间。
2)varchar是变长,范围是0~65535;varcahr最长度由最在行大小和使用的字符集确定;
3)数据检索时,若列值的尾部含有空格,则char列会删除其尾部的空格,而varchar列则不会删除;
4)对于MyISAM表,推荐char类型;对于InnoDB表,推荐varchar类型。
text与blob
char或varchar用来保存较小的字符串,而保存比较大的文本时一般选择text或blob。text与blob的差别主要是blog用来保存二进制的数据,text只能保存字符数据。
简单的记录了。
请登录后再评论