Mongodb 儲存引擎

2021-08-10 20:19:48 字數 798 閱讀 1070

mongodb 3.0 的儲存引擎預設是mmapv1,還有乙個新引擎wiredtigger,wiredtigger具有很高的效能。建議在生產環境上公升級到wiredtigger。

mongodb原生的儲存引擎,比較簡單,直接使用系統級的記憶體對映檔案機制。對於insert,read,update(upate 不導致文件的size變大)具有較高的效能。

mmapv1併發級別

支援collection級別,對於同乙個collection同時只能有乙個write操作執行。

此引擎不會使用到swap空間。

是mongodb3.0後新增的引擎,無論在read、insert、update上都有很好的效能。所有的insert都是「文件」級別的lock。因此多個客戶端可以同時更新collection中的document。在生產環境下,更多的記憶體可以有效提公升wiredtigger的效能,因為他是io多執行緒。wiredtigger不會像mmapv1那樣盡可能的耗盡記憶體,它可以通過在配置檔案中指定「cachesizegb」引數來設定引擎使用的記憶體量。此記憶體用於快取工作集(索引,namespace,未提交的write,query緩衝等)。

wiredtigger的儲存引擎圖

wiredtigger cache的資料結構

wiredtigger cache的內部儲存結構使用btree的方式進行組織。每個樹節點為乙個page。葉子節點是真正儲存資料的節點。btree的資料以page為單位按需寫入磁碟或從磁碟讀入頁。

參考:

MongoDB 儲存引擎

儲存引擎是mongodb的核心元件,負責管理資料如何儲存在硬碟和記憶體上。mongodb支援的儲存引擎有mmapv1 wiredtiger和inmemory。inmemory儲存引擎用於將資料只儲存在記憶體中,只將少量的元資料 meta data 和診斷日誌 diagnostic 儲存到硬碟檔案中,...

Mysql 儲存引擎之 MyISAM儲存引擎

myisam是預設儲存引擎。每個myisam在磁碟上儲存成三個檔案。frm檔案儲存表定義 myd檔案儲存資料 myi檔案儲存索引。要明確表示你想要用乙個myisam 請用engine表選項指出來 create table test myisam id int engine myisam 2 如下是m...

mysql儲存引擎 mysql儲存引擎簡介

精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...