您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“mysql中InnoDB引擎的執(zhí)行過程”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
1、存儲在bufferpool。
當(dāng)執(zhí)行器獲得需要執(zhí)行的sql時,需要根據(jù)更新條件將需要修改的數(shù)據(jù)從磁盤中加載到內(nèi)存中。
2、修改數(shù)據(jù)前,進行數(shù)據(jù)備份。
即將數(shù)據(jù)放入undolog中,以方便事務(wù)回滾時的操作。
sql語句在內(nèi)存修改相應(yīng)的值。
根據(jù)修改后的數(shù)據(jù)寫redologbuffer。
3、寫下redolog內(nèi)容。
此步驟見innodb_flush_at_trx_commit的配置。一般先寫入系統(tǒng)緩存,再由操作系統(tǒng)DMA異步操作寫入系統(tǒng)文件。flush操作只是將系統(tǒng)內(nèi)存中的數(shù)據(jù)寫入操作系統(tǒng)的緩沖中,數(shù)據(jù)讀寫通常由內(nèi)核線程完成。這一步是將數(shù)據(jù)從用戶線程轉(zhuǎn)換為內(nèi)核線程進行操作。讀寫文件時,磁盤文件和內(nèi)存之間會有多級緩存,以提高數(shù)據(jù)交換效率。這就是oscache在這里的作用。
4、binlog寫入操作。
5、寫入oscache。
將操作系統(tǒng)刷入磁盤文件。如圖所示,sync_log的配置。一般來說,innodb_flush_at_trx_commit和sync_log配置為1。
6、提交事務(wù)。
當(dāng)數(shù)據(jù)進行寫盤操作時,InnoDB采用兩次寫法來寫數(shù)據(jù)。
“mysql中InnoDB引擎的執(zhí)行過程”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。