MySQL Online DDL的實現細節介紹
MySQL Online DDL的實現細節共分為三個階段:
Prepare階段
1.建立臨時frm檔案
2.持有EXCLUSIVE-MDL鎖,禁止讀寫
3.根據ALTER型別,確定執行方式(copy,online-rebuild,online-norebuild)
4.更新資料字典的記憶體物件
5.分配row_log物件記錄增量
6.生成臨時ibd檔案
ddl執行階段
1.降級EXCLUSIVE-MDL鎖,允許讀寫
2.掃描原表的聚簇索引每條記錄
3.遍歷新表的聚簇索引和二級索引,逐一處理
4.根據記錄構造對應的索引項
5.將構造索引項插入sort_buffer塊
6.將sort_buffer塊插入新的索引
7.處理ddl執行過程中產生的增量(僅rebuild型別需要)
commit階段
1.升級到EXCLUSIVE-MDL鎖,禁止讀寫
2.應用最後row_log中產的日誌
3.更新innodb的資料字典表
4.提交事務(刷事務的redo日誌)
5.修改統計資訊
6.rename臨時idb檔案,frm檔案
7.變更完成
Prepare階段
1.建立臨時frm檔案
2.持有EXCLUSIVE-MDL鎖,禁止讀寫
3.根據ALTER型別,確定執行方式(copy,online-rebuild,online-norebuild)
4.更新資料字典的記憶體物件
5.分配row_log物件記錄增量
6.生成臨時ibd檔案
ddl執行階段
1.降級EXCLUSIVE-MDL鎖,允許讀寫
2.掃描原表的聚簇索引每條記錄
3.遍歷新表的聚簇索引和二級索引,逐一處理
4.根據記錄構造對應的索引項
5.將構造索引項插入sort_buffer塊
6.將sort_buffer塊插入新的索引
7.處理ddl執行過程中產生的增量(僅rebuild型別需要)
commit階段
1.升級到EXCLUSIVE-MDL鎖,禁止讀寫
2.應用最後row_log中產的日誌
3.更新innodb的資料字典表
4.提交事務(刷事務的redo日誌)
5.修改統計資訊
6.rename臨時idb檔案,frm檔案
7.變更完成
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2137420/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL DDL執行方式-Online DDL介紹MySql
- MySQL 5.7 online DDL特性介紹MySql
- mysql online ddl的演化MySql
- MySQL Online DDL 概述MySql
- Limitations of Online DDL for MySQLMITMySql
- MySQL 5.7 Online DDL OverviewMySqlView
- MySQL Online DDL詳解MySql
- MySQL 5.6 Online DDL.mdMySql
- MySQL資料庫複製操作的詳細實現步驟介紹MySql資料庫
- 雲原生平臺 Kyma 上建立的 Lambda Function 的技術實現細節介紹Function
- MySQL 8.0 Reference Manual(讀書筆記81節-- InnoDB and Online DDL (1))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記82節-- InnoDB and Online DDL (2))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記83節-- InnoDB and Online DDL (3))MySql筆記
- MySQL 8.0 Reference Manual(讀書筆記84節-- InnoDB and Online DDL (4))MySql筆記
- online的操作介紹
- mysql之 openark-kit online ddlMySql
- 【MySQL】online ddl 思維導圖MySql
- mysql binlog詳細介紹MySql
- javascript節點型別詳細介紹JavaScript型別
- Layer的實現細節
- mysql5.6的online ddl功能測試MySql
- MySQL Xtrabackup備份原理和實現細節MySql
- MySQL online ddl 工具之pt-online-schema-changeMySql
- MySQL Online DDL--pt-online-change-schema測試MySql
- 【MySQL】online ddl 工具之pt-online-schema-changeMySql
- 網站實現HTTPS的詳細流程介紹網站HTTP
- MySQL & MariaDB Online DDL 參考指南MySql
- MySQL ONLINE DDL 和PT-ONLINE-SCHEMA-CHANGE對比MySql
- MySQL體系結構詳細介紹MySql
- UI5 Source code map機制的細節介紹UI
- SAP 電商雲 Spartacus UI SiteContextUrlParams 的實現明細介紹UIContext
- MySQL5.6支援哪些Online DDL操作MySql
- MySQL5.6 Online DDL線上狀態總結MySql
- MySQL online create index實現原理MySqlIndex
- mysql表分割槽技術詳細介紹MySql
- mysql分割槽功能、例項詳細介紹MySql
- 如何恢復Mysql資料庫的詳細介紹MySql資料庫
- MySQL主從複製的詳細過程介紹MySql