数据类型的选择
1、CHAR与VARCHAR
CHAR与VARCHAR类型类似,都用来存储字符串。
CHAR:固定长度,处理速度较VARCHAR快,但浪费空间。
VARCHAR:可变长度 +1
CHAR(4)和VARCHAR(4)列检索的值并不总相同,CHAR列删除了尾部的空格
2、TEXT与BLOB
保存交大文本时,通常会选择用TEXT或者BLOB
TEXT:只能保存字符数据,如文章或日记
BLOB:二进制,如照片)
删除会造成数据空洞,要使用OPTIMIZE TABLE进行碎片整理。
可以使用合成的(Synthetic)索引来提高大文本字段的查询性能。可以使用模糊查询,但最前不能为%。
在不必要的时候避免检索大型的TEXT或者BLOB。
把TEXT或者BLOB列分离到单独的表中。
3、浮点数和定点数
浮点数:float,double/real:超出精度会四舍五入
定点数:decimal
浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的数据范围;
它的缺点是会引起精度问题。
注:(1)、浮点数存在误差问题;
(2)、对货币等精度敏感的数据,应该用定点数表示存储;
(3)、在编程中,如果用到浮点数,要注意误差,并尽量比米娜做浮点数比较;
(4)、要注意浮点数中一些特殊值的处理。
4、日期类型选择
(1)、根据实际选择能够满足应用最小存储的日期类型;
(2)、如果记录年月日时分秒,久远用DATETIME;
(3)、如果记录的日期要让不同时区的用户使用,最好使用TIMESTAMP。
魔由心生,有万境纵横,无一道清静,无量寿佛!