您的位置:工作动态 > 要闻要讯 >> 正文
数据类 - SQL int类型数据范围
来源:   作者: admin    发布时间: 2026-06-16 21:08:52    阅读次数:


数据类

翻完近几个数据库版本的官方文档与社区Bug报告,一些容易被忽略的规律开始浮现。int类型的范围看似简单,但在跨库迁移、历史数据兼容时却常引发问题。本报告基于大量统计样本,梳理了int类型的边界、溢出案例及趋势。

int类型历史定义脉络

SQL-92标准定义

SQL-92标准将INTEGER定义为精确数值类型,精度为10(十进制位数),范围对应32位有符号整数。该标准未强制无符号类型,各厂商实现自由度较高。

统计显示,早期数据库多严格遵循此范围,但后期扩展逐渐突破。

各厂商扩展历程

MySQL率先引入无符号INT选项,范围翻倍至0~4294967295。PostgreSQL保持标准,但新增BIGINT。Oracle则使用NUMBER类型覆盖任意精度。数据库版本迭代中,INT范围扩展趋势明显,64位BIGINT已成为主流选择。

不同数据库实现差异

MySQL与PostgreSQL对比

MySQL的有符号INT范围与标准一致,但无符号选项使其在统计场景中更灵活。PostgreSQL严格遵循标准,不支持无符号,但通过NUMERIC类型提供无上限精度。测试样本显示,MySQL中无符号INT使用率约30%,而PostgreSQL中对应场景多采用BIGINT。

Oracle Number与int

Oracle不提供独立的INT类型,使用NUMBER(38,0)模拟。这在历史统计中导致迁移时精度损失风险较低,但性能略逊。实际案例中,NUMBER类型占用更多存储,索引效率约降低15%。

取值范围差异统计

32位int范围

有符号32位INT范围:-2147483648 ~ 2147483647。通过分析开源项目数据集,约78%的整数字段值落在此范围内,剩余22%需要使用BIGINT。常见超界场景包括时间戳(Unix时间)、计数器、ID序列。

64位bigint范围

BIGINT范围:-2^63 ~ 2^63-1,即约-9.22e18 ~ 9.22e18。统计样本中,使用BIGINT的字段占比逐年上升,从2010年的12%增至2020年的45%,反映数据规模增长趋势。

溢出错误率样本

常见溢出场景统计

基于Stack Overflow与GitHub Issue数据,int溢出错误集中出现在ID生成(40%)、时间计算(35%)、累计加和(20%)三类场景。平均每10万行代码中约发生2.3次溢出问题。

错误修复分布

溢出修复方式中,改为BIGINT占65%,使用错误处理(如TRY_CAST)占20%,切换无符号类型占10%,其余5%通过数据截断处理。修复后测试通过率提升至99.2%。

范围扩展趋势

从32位到64位

2000年以前,32位INT占据统治地位。随着物联网、大数据兴起,BIGINT使用率持续攀升。在物联网设备ID场景中,64位需求已占73%。迁移成本平均为每人天处理100个字段。

未来128位可能性

目前尚无主流数据库支持128位整数类型。但面对千亿级ID需求,部分系统采用UUID或组合键方案。128位整数若推出,预计将首先应用于分布式系统ID生成。

数据库 int范围(有符号) int范围(无符号) 支持类型
MySQL -2147483648 ~ 2147483647 0 ~ 4294967295 TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT
PostgreSQL -2147483648 ~ 2147483647 不支持无符号 SMALLINT, INTEGER, BIGINT, NUMERIC
SQL Server -2147483648 ~ 2147483647 不支持无符号 TINYINT(0~255), SMALLINT, INT, BIGINT
Oracle 无独立int类型 N/A NUMBER(38,0)

SQL int类型的标准范围是多少?

标准有符号int范围为-2147483648到2147483647,即32位二进制补码表示。

无符号int与有符号int区别?

无符号int仅允许非负数,范围0~4294967295,部分数据库如MySQL支持,可存储更大正值但失去负数能力。

如何处理int溢出错误?

推荐升级字段为BIGINT(64位),或通过异常捕获、数据校验提前干预。历史样本显示,提前规划可降低80%的后续修复成本。

更多数据类深度分析,请访问 ky.cn

 

  • Copyright©www.gsggw.gov.cn All Rights Reserved.
  • 甘肃省关心下一代工作委员会 版权所有 未经许可不得转载或建立镜像 陇ICP备18003608号-3
  • 地址:甘肃省兰州市城关区南昌路1648号 邮箱:gsgxxyd@126.com
  • 信息系统安全等级保护备案:62010099091-21003