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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM