由於自增主鍵可以讓主鍵索引盡量地保持遞增順序插入,避免了頁分裂,因此索引更緊湊
MyISAM 引擎的自增值保存在數據文件中
nnoDB 引擎的自增值,其實是保存在了內存里,並且到了 MySQL 8.0 版本后,才有了“自增值持久化”的能力,也就是才實現了“如果發生重啟
表的自增值可以恢復為 MySQL 重啟前的值,在 MySQL 5.7 及之前的版本,自增值保存在內存里
每次重啟后,第一次打開表的時候,都會去找自增值的最大值 max(id)
然后將 max(id)+1 作為這個表當前的自增值
到賬自增主鍵不連續
1 唯一鍵沖突是導致自增主鍵 id
2 事務回滾也會導致
3 語句執行過程中,第一次申請自增 id,會分配 1 個;
1個用完以后,還是這個語句,第三次申請自增 id,會分配 2 個;
2 個用完以后,還是這個語句,第三次申請自增 id,會分配 4個
如果只用到了iD3 id4就被浪費了 之后再有插入語句 自增id就是從id5開始