Mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围

Mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围


引言

社区这边的业务就遇到过这个坑,由于是用的开源框架,很多表id的字段用的mediumint类型,随着业务增长,数据量暴增,结果有一天超过id的上限,结果insert db就报错了,影响部分业务功能。

整型数值

整型的每一种都分有无符号(unsigned)和有符号(signed)两种类型,在默认情况下声明的整型变量都是有符号的类型,如果需声明无符号类型的话就需要在类型前加上unsigned。

  • bigint

    从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字),无符号的范围是0到18446744073709551615,共 8 个字节。

  • int

    一个正常大小整数。有符号的范围是-2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字),无符号的范围是0到4294967295。共 4 个字节。 int 的 SQL-92 同义词为 integer。

  • mediumint

    一个中等大小整数,有符号的范围是-8388608到8388607,无符号的范围是0到16777215, [0,2^24-1]。 大小为3个字节。

  • smallint

    一个小整数。有符号的范围是-2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据,无符号的范围是0到65535。大小为 2 个字节。MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

  • tinyint

    有符号的范围是-128 - 127, 无符号的范围是 从 0 到 255 的整型数据。大小为 1 字节。[0,2^8-1]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值