自增值
1.innodb_autoinc_lock_mode
自增列的鎖狀態,有三種選值: 0 1 2
innodb_autoinc_lock_mode =0
所有的isert 都會持有AUTO-INC
table-level lock直到語句結束,statement-based 這種複製模式下,從庫的自增列值會和主庫保持一致。
innodb_autoinc_lock_mode =1
這種模式為預設模式,可以預估需要插入多少行,分配多少個自增值得簡單插入會避免使用AUTO-INC table-level lock。
INSERT ... SELECT
,
REPLACE ... SELECT
, and
LOAD DATA
對於這種複雜insert還是會選擇持有AUTO-INC table-level lock直到語句結束,這種情況下,如果既有簡單插入又有行數不確定的出入一起執行的時候,innndb一般會分配比要求的行數更多的自增列值,但是分配的值還是會保證連續,多分配的值則會丟失。
innodb_autoinc_lock_mode =2
這種模式允許併發,可擴充套件性,不會持有table-level
AUTO-INC
lock
2.自增值在MySQL8.0有一個較大的改變,以前的自增值會在重啟之後取max(primary_id)+1,這種情況某些情況會導致主鍵衝突或者其他問題。
相關bug解決: https://dev.mysql.com/worklog/task/?id=6204
However, the same has already been fixed in 8.0 by WL#6204 - InnoDB persistent max value for autoinc columns. Upgrading to 8.0 will fix the issue.
具體的改進為:
1. The AUTOINC counters would get persisted through redo logs 透過redo log持久化 2. All AUTOINC counters would be collected from redo logs and applied to in-memory counters if they're bigger. 所有的自增值將會記入redo log 並且會在很大的時候應用到記憶體中的計數器 3. There won't be any rollback of AUTOINC counters. 他們不會被rollback 4. 'SELECT MAX(c) FROM t' would not be needed except when IMPORT tablespace. SELECT MAX(c) FROM t'除了在表空間匯入的時候,其他時候都不需要了 5. The largest updated counter will be logged and will not change with reboot. 最大的更新計數器不會在重啟的時候改變 6. Considering performance, we could write some extra redo logs, but no new MTRs. 對於效能來說,會有一些額外的redo log寫入,但是沒有新的MTRs
3.另外還有一個改變點就是replace into的bug,replace的時候如果唯一鍵值存在,則會記錄為delete+insert,影響行數是2,但是binlog的記錄是update操作,這樣從庫同步僅執行了update,不會更新自增值。
In MySQL 8.0, updating an existing AUTO_INCREMENT column value in an InnoDB table also resets the AUTO_INCREMENT sequence.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30018455/viewspace-2921437/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sysbench花式踩坑之三:自增值導致的鎖等待
- c++如何計算增值稅(例如12%的增值稅)C++
- sysbench花式採坑之二:自增值導致的主鍵衝突
- sysbench花式採坑之一:自增值導致的TPS不可靠
- 輕鬆處理增值稅發票資料的利器——增值稅發票識別 APIAPI
- 增值電信業務許可證概念
- 上海哪裡有開增值稅普通發票
- OCR識別技術—增值稅發票識別
- 強大的網路安全如何為企業增值?
- 購買SOLIDWORKS增值服務贈送正版軟體Solid
- 基於發票增值稅OCR API設計自動識別應用系統,從此解放財務雙手API
- 中安增值稅發票識別+核驗介紹
- 共享辦公室租賃,空間差異化增值
- 百貨wifi無線覆蓋增值服務解決方案WiFi
- 如何利用精益六西格瑪處理非增值加工?
- 增值分銷商關係管理的最佳採購實踐
- 電子採購如何成為供應鏈中的增值?
- 物業行業增值服務條線數字化規劃行業
- 如何低成本開發CDN/雲資料庫等增值服務資料庫
- 增值稅開票系統中開具發票清單操作方法
- IDC發展兩大趨勢:需求攀升,增值服務需求增長
- 上海哪裡可以開增值稅普通發票|開票服務大廳
- 西安哪裡可以開增值稅普通發票|開票服務大廳
- 新疆哪裡可以開增值稅普通發票|開票服務大廳
- 不辦理增值電信業務ICP,EDI有什麼後果嗎
- 產品解讀|EMQX Cloud 新上增值服務到底能增哪些「值」?MQCloud
- 超過1400萬部老年機被植入木馬、非法開通增值服務
- 南京新疆哪裡可以開增值稅普通發票|開票服務大廳
- 關於上海市哪裡可以開增值稅普通發票-河北本地寶
- EMQX Cloud 增值服務上線,高價值功能滿足定製化需求MQCloud
- 摩杜雲:打造新基建核心支柱,資料增值將成為發展引擎
- 2019年8月國內增值電信業務許可情況分析報告
- 全國增值稅發票查驗介面平臺-JavaScript發票驗真api示例JavaScriptAPI
- 直播系統原始碼的禮物及增值服務,拓寬流量變現渠道原始碼
- StartDT AI Lab | 資料增強技術如何實現場景落地與業務增值?AI
- 資料資產入表元年,企業如何抓住資料資產增值的機遇?
- 各位個人開發者 ICP<< 增值電信業務經營許可證>>怎麼破
- SensorTower:2018年11月提供會員增值服務的移動應用全球收入TOP10