MongoDB實戰第二版筆記(11)第十章筆記

MongoDB實戰第二版筆記(11)第十章筆記

  1、存儲引擎是數據庫和硬件直接的接口,不會改變shell或驅動裏執行的查詢,也不會在集羣級別干擾MongoDB,但影響如何從磁盤寫入、刪除和讀取數據以及存儲使用的數據結構。

  2、可插拔引擎API允許第三方爲MongoDB開發存儲引擎。

  3、MongoDB之前使用MMAPv1做存儲引擎,現在仍在使用,這是基於內存映射是MongoDB文檔的解決方案。然而大量要存儲數據時,它會隨着數據增長快速消耗大量磁盤空間,每次預分配2GB的增長空間。MongoDB提供預分配空間機制,每個增加都是預分配2GB。3.0以後版本,可以告訴MongoDB使用哪個存儲引擎。

  4、MongoDB提供備選存儲引擎WiredTiger。

  5、WiredTiger是高性能的、可伸縮的、開源的數據存儲引擎,專注於多核伸縮性【現代編程實現,風險指針和無鎖機制】和最佳內存使用。

  6、要啓用WiredTiger,需要在配置文件YAML中設置存儲參數即可。

在這裏插入圖片描述

MongoDB配置文件的不同參數。

  7、WiredTiger和MMAPv1性能對比。

  • WiredTiger啓動服務器和初始化存儲目錄過程很痛苦【久】
  • 無壓縮模式的WiredTiger比MMAPv1少用磁盤。
  • 純讀取,MMAPv1最慢,壓縮版本的WiredTiger效率高。對緩存結果,MMAPv1比WiredTiger稍快。

  8、B-樹強大之處是基於磁盤的存儲按塊進行。

  9、WiredTiger提供文檔級別的鎖,多個請求可以同時訪問一個集合而不需要互相阻塞,只要沒有同時寫入一個文檔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章