檢查點(diǎn) |
發(fā)布時(shí)間: 2012/8/26 15:57:35 |
InnoDB實(shí)現(xiàn)一種被認(rèn)識(shí)為“模糊”檢查點(diǎn)設(shè)置的檢查點(diǎn)機(jī)制。InnoDB以小批量從緩沖池刷新已修改的數(shù)據(jù)庫(kù)頁(yè)。沒(méi)必要以單個(gè)批次刷新緩沖池,單批次刷新實(shí)際操作中可能會(huì)在檢查點(diǎn)設(shè)置進(jìn)程中停止用戶SQL語(yǔ)句的處理。
在崩潰恢復(fù)中,InnoDB找尋被寫(xiě)進(jìn)日志的檢查點(diǎn)標(biāo)簽。它知道所有在該標(biāo)簽之前對(duì)數(shù)據(jù)庫(kù)的修改被呈現(xiàn)在數(shù)據(jù)庫(kù)的磁盤(pán)映像中。然后InnoDB從檢查點(diǎn)往前掃描日志文件,對(duì)數(shù)據(jù)庫(kù)應(yīng)用已寫(xiě)入日志的修改。 InnoDB以循環(huán)方式寫(xiě)日志文件。所有使得緩沖池里的數(shù)據(jù)庫(kù)頁(yè)與磁盤(pán)上的映像不同的已提交修改必須出現(xiàn)在日志文件中,以備萬(wàn)一InnoDB需要做一個(gè)恢復(fù)。這意味著,當(dāng)InnoDB開(kāi)始重新使用一個(gè)日志文件,它需要確認(rèn)在磁盤(pán)上的數(shù)據(jù)庫(kù)頁(yè)映像包含已寫(xiě)進(jìn)InnoDB準(zhǔn)備重新使用的日志文件里的修改。換句話說(shuō),InnoDB必須創(chuàng)建一個(gè)檢查點(diǎn),這經(jīng)常涉及已修改數(shù)據(jù)庫(kù)頁(yè)到磁盤(pán)的刷新。
前面的敘述解釋了為什么使你的日志文件非常大會(huì)在設(shè)置檢查點(diǎn)中節(jié)約磁盤(pán)I/O。設(shè)置日志文件總的大小和緩沖池一樣大或者甚至比緩沖池大通常是有意義的。大日志文件的缺點(diǎn)是崩潰恢復(fù)要花更長(zhǎng)的時(shí)間,因?yàn)橛懈鄬?xiě)入日志的信息要應(yīng)用到數(shù)據(jù)庫(kù)上。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |