首先執(zhí)行器根據(jù) MySQL 的執(zhí)行計(jì)劃來查詢數(shù)據(jù),先是從緩存池中查詢數(shù)據(jù),如果沒有就會(huì)去數(shù)據(jù)庫中查詢,如果查詢到了就將其放到緩存池中
在數(shù)據(jù)被緩存到緩存池的同時(shí),會(huì)寫入 undo log 日志文件
更新的動(dòng)作是在 BufferPool 中完成的,同時(shí)會(huì)將更新后的數(shù)據(jù)添加到 redo log buffer 中
完成以后就可以提交事務(wù),在提交的同時(shí)會(huì)做以下三件事
將redo log buffer中的數(shù)據(jù)刷入到 redo log 文件中
將本次操作記錄寫入到 bin log文件中
將 bin log 文件名字和更新內(nèi)容在 bin log 中的位置記錄到redo log中,同時(shí)在 redo log 最后添加 commit 標(biāo)記