国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
簡單回顧
首頁 資料庫 MongoDB 一文深析MongoDB儲存引擎(附原理圖)

一文深析MongoDB儲存引擎(附原理圖)

Dec 06, 2022 pm 05:00 PM
mongodb

這篇文章帶大家了解關(guān)於mongodb的相關(guān)知識,介紹一下MongoDB中的儲存引擎,希望對大家有幫助!

簡單回顧

上次我們說到了關(guān)於mongodb 的集群,分為主從集群和分片集群,對於分片集群中的分片這裡需要注意如下幾點(diǎn),一起來回顧一下:

  • 對於熱點(diǎn)資料

某些分片鍵(分片鍵是集合中每個文件中存在的索引欄位或複合索引欄位)會導(dǎo)致所有的讀取或?qū)懭胝埱?/strong> 都操作在單一資料區(qū)塊或分片上,這樣就會導(dǎo)致單一分片伺服器負(fù)荷過重,那麼自增長的分片鍵容易導(dǎo)致寫的問題【推薦:MongoDB視訊教學(xué)

  • 對於不可分割的資料塊

對於粗粒度的分片鍵,可能會導(dǎo)致許多文件使用相同的分片鍵

這樣的話這些文件就不能分割為多個資料區(qū)塊,這就會限制了mongodb 的均勻分佈資料能力

  • 對於查詢障礙

##分片鍵與查詢是沒有關(guān)聯(lián)的,這樣會造成糟糕的查詢效能

對於以上註意點(diǎn),咱們做到心中有數(shù),實際工作中遇到類似的問題,就可以嘗試學(xué)著處理了

今天我們簡單了解一下

mongodb 的儲存引擎是個啥

#儲存引擎

說到mongodb 的儲存引擎,我們要知道是在mongodb 3.0 的時候引入了

可插拔儲存引擎的概念

現(xiàn)在主要有這幾個引擎:

    ##WiredTiger 儲存引擎
  • inMemory 儲存引擎
  • 在儲存引擎剛出來的時候,預(yù)設(shè)是使用的?MMAPV1 儲存引擎的

MMAPV1 引擎,看名字我們大概就知道他是使用的是mmap 來做的,運(yùn)用的是linux 內(nèi)存映射的原理

#現(xiàn)在不使用MMAPV1 引擎,是因為

WiredTiger ?存儲引擎更優(yōu)

,例如對比一下WiredTiger ?就有以下優(yōu)勢:

WiredTiger ?
    讀寫作業(yè)效能較好
  • WiredTiger 能更好的發(fā)揮多核心系統(tǒng)的處理能力

    WiredTiger
  • 鎖定的粒度更小

    MMAPV1引擎使用表級鎖,當(dāng)某個單表上有並發(fā)的操作,吞吐就會受到限制

  • 而WiredTiger 使用文件級的鎖,這就帶來並發(fā)及吞吐的提高

WiredTiger
    壓縮方式更好
  • WiredTiger 使用前綴壓縮,比起MMAPV1 更節(jié)省對記憶體空間的損耗

並且?WiredTiger ?也

提供壓縮演算法

一文深析MongoDB儲存引擎(附原理圖)

  • ##資源的消耗
  • WiredTiger 引擎的寫入原理
    #透過上圖我們可以看出, WiredTiger ?寫入磁碟的原理也是很簡單的

應(yīng)用程式請求來到mongodb ,mongodb 做處理,並將結(jié)果存入快取中當(dāng)快取中達(dá)到

2 個G

的時候,或當(dāng)一文深析MongoDB儲存引擎(附原理圖)60 s

定時器到時間的時候,就會將快取中的資料刷到磁碟中去

細(xì)心的xdm 就知道,那麼如果現(xiàn)在正好是59 秒,1個多G 的時候,快取中的資料還沒同步到磁碟中,mongodb 就異常掛掉了,那麼mongodb 豈不是會遺失資料?

我們用手指頭都可以想到,
    mongodb 的設(shè)計者怎麼會讓這種情況存在,那麼必然會有解決方案
  • ,如下

    如上圖,圖中多了一個?
  • journaling buffer 和?journal 檔案

##journaling buffer

存放mongodb 增刪改指令的緩衝區(qū)

journal 檔案

類似於關(guān)聯(lián)式資料庫中的交易日誌

引入Journaling 的目的是:

Journaling ?能夠讓mongodb 資料庫因意外故障後快速復(fù)原

Journaling ?日誌功能######Journaling ?的日誌功能,看起來有點(diǎn)像是redis 中的aof 持久化一樣,也只能說是類似######在mongodb 2.4 的時候,就已經(jīng)是###預(yù)設(shè)會開啟Journaling日誌功能### 的,我們啟動mongod 實例的時候,服務(wù)就會去檢查是否需要恢復(fù)資料#########因此就不會有上述mongodb 遺失資料的情況了#######

另外這裡我們要知道,journaling 的日誌功能,當(dāng)mongodb 需要進(jìn)行寫入操作的時候,也就是增,刪,改的時候,journaling 是會寫日誌的,這會影響效能

但是mongodb 讀取操作的時候,是不會記錄到快取中的,因此也不會記錄到j(luò)ournaling ?日誌中,因此讀取操作沒有影響

#今天就到這裡,學(xué)習(xí)所得,若有偏差,還請斧正

#

以上是一文深析MongoDB儲存引擎(附原理圖)的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

使用 Composer 解決推薦系統(tǒng)的困境:andres-montanez/recommendations-bundle 的實踐 使用 Composer 解決推薦系統(tǒng)的困境:andres-montanez/recommendations-bundle 的實踐 Apr 18, 2025 am 11:48 AM

在開發(fā)一個電商網(wǎng)站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統(tǒng)的精度和效率,我決定採用更專業(yè)的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統(tǒng)的性能??梢酝ㄟ^一下地址學(xué)習(xí)composer:學(xué)習(xí)地址

CentOS上GitLab的數(shù)據(jù)庫如何選擇 CentOS上GitLab的數(shù)據(jù)庫如何選擇 Apr 14, 2025 pm 04:48 PM

CentOS系統(tǒng)上GitLab數(shù)據(jù)庫部署指南選擇合適的數(shù)據(jù)庫是成功部署GitLab的關(guān)鍵步驟。 GitLab兼容多種數(shù)據(jù)庫,包括MySQL、PostgreSQL和MongoDB。本文將詳細(xì)介紹如何選擇並配置這些數(shù)據(jù)庫。數(shù)據(jù)庫選擇建議MySQL:一款廣泛應(yīng)用的關(guān)係型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),性能穩(wěn)定,適用於大多數(shù)GitLab部署場景。 PostgreSQL:功能強(qiáng)大的開源RDBMS,支持複雜查詢和高級特性,適合處理大型數(shù)據(jù)集。 MongoDB:流行的NoSQL數(shù)據(jù)庫,擅長處理海

MongoDB與Oracle:了解關(guān)鍵差異 MongoDB與Oracle:了解關(guān)鍵差異 Apr 16, 2025 am 12:01 AM

MongoDB適合處理大規(guī)模非結(jié)構(gòu)化數(shù)據(jù),Oracle適用于需要事務(wù)一致性的企業(yè)級應(yīng)用。1.MongoDB提供靈活性和高性能,適合處理用戶行為數(shù)據(jù)。2.Oracle以穩(wěn)定性和強(qiáng)大功能著稱,適用于金融系統(tǒng)。3.MongoDB使用文檔模型,Oracle使用關(guān)系模型。4.MongoDB適合社交媒體應(yīng)用,Oracle適合企業(yè)級應(yīng)用。

MongoDB vs. Oracle:為您的需求選擇正確的數(shù)據(jù)庫 MongoDB vs. Oracle:為您的需求選擇正確的數(shù)據(jù)庫 Apr 22, 2025 am 12:10 AM

MongoDB適合非結(jié)構(gòu)化數(shù)據(jù)和高擴(kuò)展性需求,Oracle適合需要嚴(yán)格數(shù)據(jù)一致性的場景。 1.MongoDB靈活存儲不同結(jié)構(gòu)數(shù)據(jù),適合社交媒體和物聯(lián)網(wǎng)。 2.Oracle結(jié)構(gòu)化數(shù)據(jù)模型確保數(shù)據(jù)完整性,適用於金融交易。 3.MongoDB通過分片橫向擴(kuò)展,Oracle通過RAC縱向擴(kuò)展。 4.MongoDB維護(hù)成本低,Oracle維護(hù)成本高但支持完善。

CentOS MongoDB備份策略是什麼 CentOS MongoDB備份策略是什麼 Apr 14, 2025 pm 04:51 PM

CentOS系統(tǒng)下MongoDB高效備份策略詳解本文將詳細(xì)介紹在CentOS系統(tǒng)上實施MongoDB備份的多種策略,以確保數(shù)據(jù)安全和業(yè)務(wù)連續(xù)性。我們將涵蓋手動備份、定時備份、自動化腳本備份以及Docker容器環(huán)境下的備份方法,並提供備份文件管理的最佳實踐。手動備份:利用mongodump命令進(jìn)行手動全量備份,例如:mongodump-hlocalhost:27017-u用戶名-p密碼-d數(shù)據(jù)庫名稱-o/備份目錄此命令會將指定數(shù)據(jù)庫的數(shù)據(jù)及元數(shù)據(jù)導(dǎo)出到指定的備份目錄。

mongodb怎麼設(shè)置用戶 mongodb怎麼設(shè)置用戶 Apr 12, 2025 am 08:51 AM

要設(shè)置 MongoDB 用戶,請按照以下步驟操作:1. 連接到服務(wù)器並創(chuàng)建管理員用戶。 2. 創(chuàng)建要授予用戶訪問權(quán)限的數(shù)據(jù)庫。 3. 使用 createUser 命令創(chuàng)建用戶並指定其角色和數(shù)據(jù)庫訪問權(quán)限。 4. 使用 getUsers 命令檢查創(chuàng)建的用戶。 5. 可選地設(shè)置其他權(quán)限或授予用戶對特定集合的權(quán)限。

mongodb怎麼啟動 mongodb怎麼啟動 Apr 12, 2025 am 08:39 AM

要啟動 MongoDB 服務(wù)器:在 Unix 系統(tǒng)中,運(yùn)行 mongod 命令。在 Windows 系統(tǒng)中,運(yùn)行 mongod.exe 命令??蛇x:使用 --dbpath、--port、--auth 或 --replSet 選項設(shè)置配置。使用 mongo 命令驗證連接是否成功。

Debian MongoDB如何進(jìn)行數(shù)據(jù)加密 Debian MongoDB如何進(jìn)行數(shù)據(jù)加密 Apr 12, 2025 pm 08:03 PM

在Debian系統(tǒng)上為MongoDB數(shù)據(jù)庫加密,需要遵循以下步驟:第一步:安裝MongoDB首先,確保您的Debian系統(tǒng)已安裝MongoDB。如果沒有,請參考MongoDB官方文檔進(jìn)行安裝:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/第二步:生成加密密鑰文件創(chuàng)建一個包含加密密鑰的文件,並設(shè)置正確的權(quán)限:ddif=/dev/urandomof=/etc/mongodb-keyfilebs=512

See all articles