MySQL Innodb_fast_shutdown引數的內部過程介紹

chenfeng發表於2017-03-24
Innodb_fast_shutdown引數告訴innodb在它關閉的時候該做什麼工作,innodb_fast_shutdown影響著innodb表的行為,該引數有0,1,2三個值可以選擇:
  • 0表示在innodb關閉的時候,需要purge all, merge insert buffer,flush dirty pages。這是最慢的一種關閉方式,但是restart的時候也是最快的。
  • 1表示在innodb關閉的時候,它不需要purge all,merge insert buffer,只需要flush dirty page,在緩衝池中的一些資料髒頁會重新整理到磁碟。
  • 2表示在innodb關閉的時候,它不需要purge all,merge insert buffer,也不進行flush dirty page,只將log buffer裡面的日誌重新整理到日誌檔案log files,MySQL下次啟動時,會執行恢復操作。

如果在上次關閉innodb的時候是在innodb_fast_shutdown=2或是mysql crash這種情況,那麼它會利用redo log重做那些已經提交了的事務。
接下來的操作過程是:
(1). Rollback uncompleted transitions 取消那些沒有提交的事務
(2). Purge all 清除無用的undo頁
(3). Merge insert buffer 合併插入緩衝

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2136014/,如需轉載,請註明出處,否則將追究法律責任。

相關文章