mysql怎么让自增id不连续_MySQL自增id不连续问题

项目中有一张表是记录人员,在每个新用户调用接口认证通过了之后,会有一个往该表插入这个新用户信息的操作。

但是在线上环境中,发现该表的自增id不连续,且间隔都是差了2,比如上一个人的id是10,下一个人的id就是12,而在前端页面中,一个用户认证通过后,会调用3个接口,初步排查是MySQL并发操作导致了自增id不连续的情况

在这篇文章中,列举了导致自增id不连续的几个原因,这次遇到的就是第一种情况,因为个人的信息中我设置了唯一索引:

https://www.jianshu.com/p/957f605a646c

<1>、唯一键冲突是导致自增主键id不连续的第一种原因

<2>、事务回滚是导致自增主键id不连续的第二种原因

<3>、批量申请自增id的策略是导致自增主键id不连续的第三种原因

在这篇文章中提到了MySQL默认的innodb_autoinc_lock_mode=1,当innodb_autoinc_lock_mode=1和innodb_autoinc_lock_mode=2的情况下,自增id可能会出现不连续

在innodb_autoinc_lock_mode=0的时候,自增id是连续的,但是会导致锁表,影响并发性能

https://www.cnblogs.com/zhoujinyi/p/3433823.html

https://www.jianshu.com/p/369559f399d0

解决方法:

1.https://blog.csdn.net/yang5726685/article/details/78161105

原文:https://www.cnblogs.com/tonglin0325/p/12248709.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值