Mongo 儲存引擎 WiredTiger概覽

2021-08-03 18:27:00 字數 739 閱讀 8793

wiredtiger的寫操作會先寫入cache,並持久化到wal(write ahead log),每60s或log檔案達到2gb時會做一次checkpoint,將當前的資料持久化,產生乙個新的快照。

wiredtiger的cache採用btree的方式組織,每個btree節點為乙個page,root page是btree的根節點,internal page是btree的中間索引節點,leaf page是真正儲存資料的葉子節點;

btree的資料以page為單位按需從磁碟載入或寫入磁碟

持久化時,修改操作不會在原來的leaf page上進行,而是寫入新分配的page,每次checkpoint都會產生乙個新的root page。這樣的好處是對不修改原有page,就能更好的併發。

所以寫請求寫入journal後就可以保證durability

mongo早期的一些預設配置,如果不加修改使用的話,確實有可能導致一些資料丟失問題,但在後面的版本都已修正預設配置。

比如,2.0之前journal預設是不開啟狀態,資料在寫入記憶體後即刻返回應用程式,checkpoint需要60s才持久化,這個時候發生了系統崩潰或者掉電,那麼未刷盤的資料就會徹底丟失了。

寫關注設定, 2.2之前預設值為,不確認寫入結果直接返回

對複製集來說,建議使用

Mysql 儲存引擎之 MyISAM儲存引擎

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

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

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

mysql個儲存引擎 MySQL儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...