檢查點 |
發(fā)布時間: 2012/8/26 15:57:35 |
InnoDB實現(xiàn)一種被認識為“模糊”檢查點設置的檢查點機制。InnoDB以小批量從緩沖池刷新已修改的數(shù)據(jù)庫頁。沒必要以單個批次刷新緩沖池,單批次刷新實際操作中可能會在檢查點設置進程中停止用戶SQL語句的處理。
在崩潰恢復中,InnoDB找尋被寫進日志的檢查點標簽。它知道所有在該標簽之前對數(shù)據(jù)庫的修改被呈現(xiàn)在數(shù)據(jù)庫的磁盤映像中。然后InnoDB從檢查點往前掃描日志文件,對數(shù)據(jù)庫應用已寫入日志的修改。 InnoDB以循環(huán)方式寫日志文件。所有使得緩沖池里的數(shù)據(jù)庫頁與磁盤上的映像不同的已提交修改必須出現(xiàn)在日志文件中,以備萬一InnoDB需要做一個恢復。這意味著,當InnoDB開始重新使用一個日志文件,它需要確認在磁盤上的數(shù)據(jù)庫頁映像包含已寫進InnoDB準備重新使用的日志文件里的修改。換句話說,InnoDB必須創(chuàng)建一個檢查點,這經(jīng)常涉及已修改數(shù)據(jù)庫頁到磁盤的刷新。
前面的敘述解釋了為什么使你的日志文件非常大會在設置檢查點中節(jié)約磁盤I/O。設置日志文件總的大小和緩沖池一樣大或者甚至比緩沖池大通常是有意義的。大日志文件的缺點是崩潰恢復要花更長的時間,因為有更多寫入日志的信息要應用到數(shù)據(jù)庫上。 本文出自:億恩科技【mszdt.com】 |