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