mongodb 現(xiàn)在有兩款存儲引擎 MMAPv1 和 WireTiger,當(dāng)然了除了這兩款存儲引擎還有其他的存儲引擎了。
如:
內(nèi)存引擎:現(xiàn)在的mongodb 版本中已經(jīng)有了,主要的cache 服務(wù),它主要是做單元測試的。
mongo-rocks:是一個key-value 的引擎被作為一個混合層為Facebook的RocksDB
Fusion-io: 這個存儲引擎是被SanDisk創(chuàng)建,他是盡可能的繞過操作系統(tǒng)的文件層直接寫到存儲設(shè)備。
TokuMX:這個存儲系統(tǒng)被 Percona 創(chuàng)建,使用了分形樹索引代替了B-tree樹索引。
/dev/null:這個存儲引擎把你所有寫的和讀的每一件事都返回空的結(jié)果,這聽起來是愚蠢的,但是在一些情況下是十分有用的,例如,在與數(shù)據(jù)庫無關(guān)的情況下,在你的應(yīng)用程序中去找一些性能瓶頸的時候。
MMAPv1
MMAPv1之所以被命名,是因為Linux 中的命令mmap() 這個命令的意思是映射文件到虛擬內(nèi)存并且允許對一些用例進(jìn)行單個的優(yōu)化,例如,當(dāng)你有一個大的文件,但是你不需要去讀整個文件,你只需要讀取器中的一部分,mmap()是十分快的比一個read(),因為read() 是把整個文件讀到內(nèi)存中。