1. 程式人生 > >mysql中自增主鍵為什麼不是連續的

mysql中自增主鍵為什麼不是連續的

 

1 自增主鍵不能保證連續遞增

2 MYSQL 5.7之前版本,自增值儲存在記憶體裡,沒有持久化,重啟後會拿當前max(id)+1作為最新主鍵;8版本,將自增值的變更記錄在redo log中,重啟的時候依靠redo log恢復重啟之前的值

3自增值修改機制

3.1如果插入資料時id欄位指定為0,null,或者未指定值,那麼就把這個表當前auto_increment值新增到自增欄位

3.2如果id欄位指定了具體的值,就直接使用語句裡指定值

3.3根據插入值和當前自增值大小關係,自增值變更結果也會有所不同,某次要插入值是X,當前自增值是Y

1.如果X<Y,那麼這個表的自增值不變

2.如果X>=Y,就要把當前自增值修改為新自增值

重要的兩個引數 自增初始值和步長,預設都是1

 

原因:

唯一健衝突是導致自增主鍵id不連續的第一種原因