MySQL栏位类型大致分为以下几类:
字符型 char,varchar,set,enum,text,blob,longtext等
数字型 int,float,double,tinyint,decimal等
日期型 date,time,datetime
那么对于设计表的时候该如何选择栏位的数据类型???可以从如下几个方面考虑
1,栏位存储什么样的数据
只有在挑选数据的时候明确了存储的数据是字符,数值,日期,坐标,才能选择哪种类型的数据进行匹配一定要问足够多的问题,才能明确栏位到底是用来存储什么数据,就像设计降雨量的表,总是会听到降雨量0.25毫米,或者稀少这样的字眼,怎么解决?如果选择数值可以通过给稀少一个定位值如0就是代表稀少,或者一个范围查询的时候可以这样写:
select if (precip >0 and precip <0.1 ,'trace',precip) from ......
有些非常明显是数值,但是是否精确小数等等。
2,数据是否都在某个特定的区间内
数据是多大,如果只有1-100(可以考虑tinyint),如果是整数,是不是都是正整数(可以考虑unsingned),如果只有男女(可以考虑enum)
可以后期通过select * from table_name procedure analyse();去分析表中数据的范围,最大最小
3,数据类型的选择对性能的影响
就像如果把一个栏位设置成字符串,但是用起来比较麻烦,排序,查询走索引等一系列问题
本文转自 aklaus 51CTO博客,原文链接:http://blog.51cto.com/aklaus/1717238