MySQL数据类型选择

1 使用可以正确存储数据(不会超过范围)的最小的数据类型

2 整形优于字符串,使用MySQL内建的类型存储日期时间,而不是字符串。使用整形存ip。

3 避免NULL,NULL列建立索引,需要消耗更多的空间。但是Innodb存储引擎的稀疏索引NULL较多反而更高效,InnoDB 使用bit存储NULL,空间效率高

整数类型:

tinyint smallint mediumint int bigint

8         16         24             32  64

可选择unsigned属性

有符号无符号数占用的存储空间以及性能一样,仅存储范围不同。

为int(11)指定宽度为11 对存储与计算无影响,仅客户端展示数据会限制范围,不建议使用。

 

只有在需要对小数进行精确计算的情况下使用Decimal。如财务数据等

使用Decimal会带来空间及计算开销

可以用BigInteger取代。如精度保留小数点后2位。则每个数字乘以100后再存入BigInteger中

VarChar

存储可变长的字符串,仅使用必要的空间,因此比定长串Char更节省空间。

会使用额外的1个或2个字节记录字符串的长度

VarChar  适用于  字符串列最大长度比平均长度大很多,且修改不频繁的场景下(修改频繁会有碎片问题)

char适用于定长的值,变更频繁时char不会有碎片问题。

但char会有空格截断问题。

使用varchar时,仅分配真正需要的空间。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值