mysql 自增主鍵為什么不是連續的?


由於自增主鍵可以讓主鍵索引盡量地保持遞增順序插入,避免了頁分裂,因此索引更緊湊

 

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開始


免責聲明!

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



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