MySQL update資料時InnoDB內部的操作流程
當MySQL更新資料時,InnoDB內部的操作流程大致是:
(1).將資料讀入InnoDB buffer pool,並對相關記錄加獨佔鎖;
(2).將UNDO資訊寫入undo表空間的回滾段中;
(3).更改快取頁的資料,並將更新記錄寫入redo buffer中;
(4).提交時根據innodb_flush_log_at_trx_commit的設定,用不同的方式將redo buffer中的更新記錄重新整理到InnoDB redo log file中,然後釋放獨佔鎖;
(5).後臺IO執行緒根據需要擇機將快取中更新過的資料重新整理寫入到磁碟檔案中。
(2).將UNDO資訊寫入undo表空間的回滾段中;
(3).更改快取頁的資料,並將更新記錄寫入redo buffer中;
(4).提交時根據innodb_flush_log_at_trx_commit的設定,用不同的方式將redo buffer中的更新記錄重新整理到InnoDB redo log file中,然後釋放獨佔鎖;
(5).後臺IO執行緒根據需要擇機將快取中更新過的資料重新整理寫入到磁碟檔案中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2135520/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL InnoDB update流程MySql
- InnoDB update操作流程圖流程圖
- MySQL InnoDB Update和Crash Recovery流程MySql
- MySQL insert的內部操作流程介紹MySql
- MySQL-InnoDB內部結構MySql
- MySQL之資料的insert-delete-update操作MySqldelete
- mysql的內部臨時表MySql
- MySQL 常用的UPDATE操作MySql
- MySQL 優化六(InnoDB 下 update 資料出現表鎖之優化)MySql優化
- MySQL Innodb_fast_shutdown引數的內部過程介紹MySqlAST
- MySQL 中的myisam內部臨時表MySql
- mysql innodb之select for update nowaitMySqlAI
- mysql innodb新建索引堵塞update ,insert,deleteMySql索引delete
- MySQL -update語句流程總結MySql
- Mysql update誤操作恢復MySql
- MySQL更新資料,如何使用updateMySql
- InnoDB事務鎖之行鎖-delete流程update階段加鎖delete
- oracle內部原理_如何修改block資料塊大體流程_checkpointOracleBloC
- [ 丹臣]利用innodb_table_monitor來trace innodb內部資訊
- Mysql 5.7 Gtid內部學習(二) Gtid相關內部資料結構MySql資料結構
- Redo內部解析-Single Row update (五)
- MySQL 資料庫 InnoDB 和 MyISAM 資料引擎的差別MySql資料庫
- MySQL什麼時候會使用內部臨時表?MySql
- UPDATE查詢結果範圍內的資料
- 【Mysql】InnoDB 引擎中的資料頁結構MySql
- MySQL 配置InnoDB為只讀操作MySql
- MySQL5.7 InnoDB線上DDL操作MySql
- [php]mysql操作流程PHPMySql
- MySQL學習記錄--操作時間資料MySql
- MySQL資料災難挽救之Delete\UpdateMySqldelete
- php資料庫之mysql(where、orderBy、Update)PHP資料庫MySql
- AndroidStudio內gradle的內部操作AndroidGradle
- MySQL:如何快速的檢視Innodb資料檔案MySql
- MYSQL INNODB中表資料的返回順序問題MySql
- 【MYSQL】InnoDB行溢位資料說明MySql
- MySQL InnoDB表--BTree基本資料結構MySql資料結構
- java資料庫操作基本流程Java資料庫
- 建立資料mysql庫流程MySql