
InnoDB存儲(chǔ)引擎內(nèi)存由以下幾個(gè)部分組成:緩沖池(buffer pool)、重做日志緩沖池(redo log buffer)以及額外的內(nèi)存池(additional memory pool),分別由配置文件中的參數(shù)innodb_buffer_pool_size和innodb_log_buffer_size的大小決定。
InnoDB存儲(chǔ)引擎的關(guān)鍵特性包括插入緩沖、兩次寫(double write)、自適應(yīng)哈希索引(adaptive hash index)。這些特性為InnoDB存儲(chǔ)引擎帶來了更好的性能和更高的可靠性。
插入緩沖是InnoDB存儲(chǔ)引擎關(guān)鍵特性中最令人激動(dòng)的。不過,這個(gè)名字可能會(huì)讓人認(rèn)為插入緩沖是緩沖池中的一個(gè)部分。其實(shí)不然,InnoDB緩沖池中有Insert Buffer信息固然不錯(cuò),但是Insert Buffer和數(shù)據(jù)頁一樣,也是物理頁的一個(gè)組成部分。
如果說插入緩沖帶給InnoDB存儲(chǔ)引擎的是性能,那么兩次寫帶給InnoDB存儲(chǔ)引擎的是數(shù)據(jù)的可靠性。當(dāng)數(shù)據(jù)庫(kù)宕機(jī)時(shí),可能發(fā)生數(shù)據(jù)庫(kù)正在寫一個(gè)頁面,而這個(gè)頁只寫了一部分(比如16K的頁,只寫前4K的頁)的情況,我們稱之為部分寫失效(partial page write)。在InnoDB存儲(chǔ)引擎未使用double write技術(shù)前,曾出現(xiàn)過因?yàn)椴糠謱懯Ф鴮?dǎo)致數(shù)據(jù)丟失的情況。
資源來自:http://roll.sohu.com/20130419/n373311094.shtml



