MySQL 核心模塊揭祕 | 15 期 | 事務模塊小結

✍ 專欄小結

1 月 3 日,我在社區發佈事務模塊的第一篇文章;4 月 17 日,發佈了最後一篇文章。歷時 3 個半月,用 14 篇文章對事務模塊做了比較全面的介紹。

本文我們對事務模塊已經發布的 14 篇文章做個簡單回顧。

01 期事務池和管理器的初始化》 👆 事務池和管理器是事務模塊的基石,把它們的初始化過程作爲專欄的第一篇文章,再合適不過了。

02 期BEGIN 語句會馬上啓動事務嗎?》 👆 這篇文章介紹了開啓一個事務的各種 SQL 語句,並且以 BEGIN 爲代表,介紹了開始一個事務的過程。

03 期我是一個事務,請給我一個對象》 👆 事務在內存中需要有一個東西承載,這個東西就是事務對象。這篇文章介紹了分配事務對象的過程。

04 期終於要啓動事務了》 👆 事務有了棲身之地以後,啓動前的準備工作已經就緒,待到需要時就可以啓動了。這篇文章介紹了事務的啓動過程。

05 期讀事務和只讀事務的變形記》 👆 事務有不同的身份,比如讀事務、只讀事務、讀寫事務。這篇文章介紹了讀事務、只讀事務的身份什麼時候會發生變化,以及會發生什麼樣的變化。

06 期事務提交之前,binlog 寫到哪裏?》 👆 事務執行過程中產生的 binlog 日誌,寫入 binlog 日誌文件之前,需要有個臨時存放的地方。這篇文章介紹了事務執行過程中 binlog 日誌會臨時存放到哪裏,以及怎麼存放。

07 期二階段提交 (1) prepare 階段08 期二階段提交 (2) commit 階段09 期二階段提交 (3) flush、sync、commit 子階段10 期binlog 怎麼寫入日誌文件?11 期InnoDB 提交事務,提交了什麼?》 👆 二階段提交分爲 prepare、commit 兩個階段,commit 階段又分爲 flush、sync、commit 三個子階段。

上面五篇文章介紹了二階段提交的整個過程:

  • 前三篇介紹了二階段提交的本身。
  • 第四篇介紹了 flush 子階段從臨時存放處讀取 binlog 日誌,寫入 binlog 日誌文件的過程。
  • 第五篇介紹了 InnoDB 存儲引擎層提交事務的過程。

12 期創建 savepoint13 期回滾到 savepoint》 👆 我們日常使用 MySQL,很少用到 savepoint,但是 MySQL 內部用的卻不少。

例如:插入、更新記錄導致唯一索引衝突時,已經插入到主鍵索引的記錄需要刪除,就會用到 savepoint。

上面兩篇文章介紹了創建 savepoint、回滾到 savepoint 的過程。

14 期回滾整個事務》 👆 回滾整個事務,屬於我們經常用到的功能,這篇文章介紹了回滾整個事務的過程。

預告:MySQL 鎖模塊。

更多技術文章,請訪問:https://opensource.actionsky.com/

關於 SQLE

SQLE 是一款全方位的 SQL 質量管理平臺,覆蓋開發至生產環境的 SQL 審覈和管理。支持主流的開源、商業、國產數據庫,爲開發和運維提供流程自動化能力,提升上線效率,提高數據質量。

SQLE 獲取

類型 地址
版本庫 https://github.com/actiontech/sqle
文檔 https://actiontech.github.io/sqle-docs/
發佈信息 https://github.com/actiontech/sqle/releases
數據審覈插件開發文檔 https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章