✍ 專欄小結
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 期《創建 savepoint》 13 期《回滾到 savepoint》 👆 我們日常使用 MySQL,很少用到 savepoint,但是 MySQL 內部用的卻不少。
例如:插入、更新記錄導致唯一索引衝突時,已經插入到主鍵索引的記錄需要刪除,就會用到 savepoint。
上面兩篇文章介紹了創建 savepoint、回滾到 savepoint 的過程。
14 期《回滾整個事務》 👆 回滾整個事務,屬於我們經常用到的功能,這篇文章介紹了回滾整個事務的過程。
預告:MySQL 鎖模塊。
更多技術文章,請訪問:https://opensource.actionsky.com/
關於 SQLE
SQLE 是一款全方位的 SQL 質量管理平臺,覆蓋開發至生產環境的 SQL 審覈和管理。支持主流的開源、商業、國產數據庫,爲開發和運維提供流程自動化能力,提升上線效率,提高數據質量。