mysql 数据类型选择原则
1、更小的通常更好;
2、简单的就好
3、尽量避免使用NULL,为什么呢?对mysql来说,更难优化;跟多的存储空间,当可为NULL的被索引,每个索引记录需要一个额外的字节。但是通常,把可为NULL的列改成NOT NULL代理的性能提升比较小。但是如果你要在这一列上建索引,就应该尽量避免成为NULL的列
整形 tiny small medium int begin 分别是8 16 24 32 64位,通常你在mysql中指定位数没有意义,对于存储和计算来说,int(1)和int(20)是相同的
unsigned会加长一倍
实数型
float double 类型支持使用标准浮点运算进行近似计算
decimal 类型用于存储精确的小数 小数点是会占空间的,mysql内部使用double作为内部浮点计算类型
VARCHAR类型 可变长字符串 为啥经常在建表的时候碰到varchar(255) ,因为这需要使用1或 2个额为字节记录字符串长度,如果列最大长度小于或者等于255字节,则只是用1个字节表示,否则使用2个字节
char是定长的,它非常适合用来存储MD5值,经常需要变更的,非常短的,char会截断最后的空格,varchar不会
blog和text类型 分别采用二进制和字符方式存储
使用枚举(ENUM) 代替字符串类型
ip地址应该使用无符号整数存储IP地址。MySql提供INET_ATON() 和 INET_NTOA() 函数在这两种方法之间转换