char 与 varchar
char是固定长度的字符串类型,varchar是可变长度的字符串类型。
- 检索时会从char列删除尾部的空格。
- char是固定长度的,所以处理速度比varchar快。varchar会用多余的字节来保存字符串长度信息。
- 对于那些长度变化不大并且对查询速度有较高要求的数据可以考虑使用char类型来存储。
对于不同的存储引擎,使用规则也不同:
- MyISAM:char
- MEMORY:char
- InnoDB:varchar
TEXT 与 BLOB
- TEXT只能保存字符数据,比如一篇文章或日记。
- BLOB能用来保存二进制数据,比如照片。
浮点数与定点数
定点数实际上是以字符串形式存放的,所以可以更精确地保存数据,在精度比较高的应用中(比如货币)更要使用定点数。
日期类型选择
- 根据实际需要选择能够满足应用的最小存储的日期类型。
- timestamp表示的日期范围比datatime要短很多。
- timestamp能够和实际时区对应。