数据库

字节面试:MySQL自增ID用完会怎样?

字号+作者:益华科技来源:系统运维2025-11-03 23:48:57我要评论(0)

在一些中小型项目开发中,我们通常会使用自增 ID 来作为主键的生成策略,但随着时间的推移,数据库的信息也会越来越多,尤其是使用自增 ID 作为日志表的主键生成策略时,可能很快就会遇到 ID 被用完的情

在一些中小型项目开发中,字节L自增我们通常会使用自增 ID 来作为主键的面试生成策略,但随着时间的用样推移,数据库的字节L自增信息也会越来越多,尤其是面试使用自增 ID 作为日志表的主键生成策略时,可能很快就会遇到 ID 被用完的用样情况,那么如果发生了这种情况,字节L自增MySQL 又会怎样执行呢?面试

PS:当然,在分库分表的用样场景中,我们通常会使用雪花算法来替代自增 ID,字节L自增但中小型项目开发中,面试使用自增 ID 的用样场景还是比较多的。

1.自增ID

在 MySQL 中,字节L自增如果字段的面试数据类型为整数类型(如 INT、BIGINT 等),用样则可以通过关键字“AUTO_INCREMENT”来设置让当前的字段实现自增,例如以下 SQL:

复制CREATE TABLE example_table ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(128) );1.2.3.4.

1.1 优点分析

自增 ID 的优点如下:

简单方便,能自动为每行数据分配唯一的标识。对于按顺序插入的数据,WordPress模板能很好地反映数据插入的先后顺序。

1.2 缺点分析

自增 ID 的缺点如下:

在数据进行迁移或分库分表时,可能会出现问题,需要特殊处理。如果数据量非常大,可能会达到自增 ID 的上限。存在安全性问题,比如通过自增 ID 可能会推测出一些业务信息。例如,一个电商订单表使用自增 ID 作为主键,可能会被竞争对手通过订单号大致推测出业务量等信息。

2.自增ID用完会怎样?

自增 ID 分为以下两种情况:

图片

一种是主键自增 ID 用完后的情况,另一种是 InnoDB 引擎中未设置主键时使用 row_id 用完后的场景,它们的情况是不一样的,所以我们分开来聊。

2.1 主键自增ID用完

当主键自增 ID 达到上限后,再新增下一条数据时,它的 ID 不会变(还是最大的值),只是此时再添加数据时,站群服务器因为主键约束的原因,ID 是不允许重复的,所以就会报错提示主键冲突。

我们可以使用以下 SQL 来测试:

复制CREATE TABLE t ( id INT AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(128) ) auto_increment=2147483647; insert into t(id,`name`) values(null,javacn.site); select * from t; insert into t(id,`name`) values(null,www.javacn.site);1.2.3.4.5.6.7.

以上 SQL 是创建了一个表 t,并且给 t 表的主键 id 设置自增 ID,之后再将表的自增 ID 初始化为 INT(有符号)的最大值 2147483647,然后再添加两条数据。

以上 SQL 的执行结果如下:

图片

从上面的执行结果可以看出:当主键自增 ID 达到上限后,再新增下一条数据时,它的 ID 不会变(还是最大的值),只是此时再添加数据时,因为主键约束的原因,ID 是不允许重复的,所以就会报错提示主键冲突。

2.2 row_id用完

如果表没有设置主键,InnoDB 会自动创建一个全局隐藏的 row_id,源码下载其长度为 6 个字节,当 row_id 达到上限后,它的执行流程和主键 ID 不同,它是再次归零,然后重新递增,如果出现相同的 row_id,后面的数据会覆盖之前的数据。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 如何进行云电脑设置教程(一步步教你完成云电脑的渲染设置)

    如何进行云电脑设置教程(一步步教你完成云电脑的渲染设置)

    2025-11-03 23:43

  • 数据仓库的下一阶段该是什么?

    数据仓库的下一阶段该是什么?

    2025-11-03 22:58

  • 日本主要通讯应用Line遭攻击,数十万用户面临数据泄露风险

    日本主要通讯应用Line遭攻击,数十万用户面临数据泄露风险

    2025-11-03 21:56

  • 再聊聊数据库国产化替代

    再聊聊数据库国产化替代

    2025-11-03 21:24

网友点评