十七、MySQL基础系列笔记之选择合适的数据类型

作者: 温新

分类: 【MySql】

阅读: 2114

时间: 2020-10-21 14:05:37

创建数据表时,每一个字段都会有一个类型,如何为一个字段选择合适的类型?举个栗子,存储一个的年龄,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只能保存字符数据。

简单的记录了。

请登录后再评论