天天看点

MySQL 表栏位类型选择

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