数据类型之整数

MySQL整数可以使用几种整数类型:tinyinitsmallinitmediumintintbigint

他们分别使用8,16,24,32,64位存储空间。对应的值范围从-2的n-1次方到2的n-1次方减1

整数有可选属性unsigned(无符号),表示不允许负值,大致可以使正数上限提高一倍。这一属性只影响存储上限,对空间使用和性能没有影响。

整数计算一般使用64位的biginit正数,即使32为位环境也是如此。

MySQL可以为整数类型指定宽度,例如init(11),对于大多数应用没有意义,它不会限制只的合法范围,只是规定了一些交互工具来显示字符的个数。所以在实际使用中不推荐这样做。

整数在应用中,应根据实际需要来选择。一般原则是满足当前使用最大上限并为未来扩展预留必要的范围。

有一个案例,一个系统一直运行正常,某日突然用户无法发言。该系统负责人找到我帮忙,经检查原因是系统存储发言的表第一个字段为自增长整数类型int,因为用户太活跃,2年左右时间已经达到了32位存储上限,修改为biginit后系统正常了。从这个案例来看,正确评估系统的需要是非常重要的。

另外如果表中有作为标识的字段,建议受用整数,并且其他表如果有相关字段请使用相同的整数类型,这样在关联表的时候效率是比较高的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值