MongoDB系列之适用场景和不适用场景
生活随笔
收集整理的這篇文章主要介紹了
MongoDB系列之适用场景和不适用场景
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MongoDB是一款開源的分布式架構(gòu)的NoSQL數(shù)據(jù)庫管理系統(tǒng)。在前面的NoSQL和SQL對比學(xué)習(xí)中,我們知道了NoSQL數(shù)據(jù)庫系統(tǒng)和傳統(tǒng)的RDBMS的不同和優(yōu)點(diǎn)
1、MongoDB優(yōu)點(diǎn)
可以簡單列舉MongoDB一些明顯的主要的優(yōu)點(diǎn)
- 速度:MongoDB比一般的關(guān)系型數(shù)據(jù)庫快很多,作為面向文檔的NoSQL數(shù)據(jù)庫,MongoDB可以通過索引使訪問文檔變得很容易而且快速
- 分片:MongoDB另外一個(gè)優(yōu)勢是允許用戶存儲大量的數(shù)據(jù),其通過分片的方式將數(shù)據(jù)分發(fā)到多個(gè)服務(wù)器上。
- 靈活性:因?yàn)镸ongoDB是非結(jié)構(gòu)化的數(shù)據(jù)庫系統(tǒng),而且多種數(shù)據(jù)類型,所以不需要像關(guān)系型數(shù)據(jù)那樣,進(jìn)行特別的表結(jié)構(gòu)設(shè)計(jì),存儲數(shù)據(jù)更加靈活
- 分布式:MongoDB數(shù)據(jù)庫默認(rèn)支持分布式,內(nèi)帶分布式的解決方案
2、MongoDB局限性
- 不支持連接:與支持連接的理性數(shù)據(jù)庫不同,MongoDB 不支持。盡管可以通過手動編碼來添加連接功能,但執(zhí)行起來可能會很慢并影響性能。
- 數(shù)據(jù)大小有限制:MongoDB允許的文檔最大值為16MB
- 不能無限嵌套:MongoDB的數(shù)據(jù)格式是BSON的,但是其不支持無限的嵌套,用戶不能超過100級的文檔嵌套
- 高內(nèi)存:MongoDB會存儲每個(gè)值對的鍵名。它還受到數(shù)據(jù)冗余的影響,因?yàn)樗狈B接的功能。這會導(dǎo)致高內(nèi)存使用率。
- 不支持業(yè)務(wù)復(fù)雜查詢:MySQL這些類型數(shù)據(jù)庫都可以進(jìn)行表連接等等復(fù)雜業(yè)務(wù)查詢,MongoDB是文檔型的數(shù)據(jù)庫,所以不支持聯(lián)表(Collection)查詢
3、適用場景
歸納了MongoDB一些比較明顯的特征后,我們可以知道MongoDB的一些適用場景。
在MongoDB官網(wǎng)也會列舉了MongoDB的適用場景:
- 1)網(wǎng)站實(shí)時(shí)數(shù)據(jù):MongoDB 非常適合實(shí)時(shí)的插入,更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲所需的復(fù)制及
高度伸縮性。 - 2)數(shù)據(jù)緩存:由于性能很高,MongoDB 也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由 MongoDB
搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。 - 3)大尺寸、低價(jià)值數(shù)據(jù)存儲:使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時(shí)可能會比較昂貴,在此之前,很
多時(shí)候程序員往往會選擇傳統(tǒng)的文件進(jìn)行存儲。 - 4)高伸縮性場景:MongoDB 非常適合由數(shù)十或數(shù)百臺服務(wù)器組成的數(shù)據(jù)庫。MongoDB 的路線圖中已經(jīng)包
含對 MapReduce 引擎的內(nèi)置支持。 - 5)對象或 JSON 數(shù)據(jù)存儲:MongoDB 的 BSON 數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。
4、不適用場景
- 1)高度事務(wù)性系統(tǒng):例如銀行或會計(jì)這些金融系統(tǒng)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫目前還是更適用于需要大量原子性復(fù)雜事務(wù)的應(yīng)用程序。
- 2)傳統(tǒng)的商業(yè)智能應(yīng)用:針對特定問題的 BI 數(shù)據(jù)庫會對產(chǎn)生高度優(yōu)化的查詢方式。對于此類應(yīng)用,關(guān)系型可能是更合適的選擇。
所以,對于需要復(fù)雜 SQL 查詢的問題。MongoDB是不太適合的,在技術(shù)選項(xiàng)上需要根據(jù)業(yè)務(wù)場景和公司實(shí)際情況選擇合適的數(shù)據(jù)庫,關(guān)系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫各有優(yōu)缺點(diǎn),應(yīng)該根據(jù)實(shí)際場景合理選擇數(shù)據(jù)庫
5、參考資料
- MongoDB應(yīng)用場景:https://hevodata.com/learn/mongodb-use-case/
- MongoDB 官網(wǎng)地址:https://www.mongodb.com/
- MongoDB 官方英文文檔:https://docs.mongodb.com/manual/
- MongoDB 各平臺下載地址:https://www.mongodb.com/download-center#community
總結(jié)
以上是生活随笔為你收集整理的MongoDB系列之适用场景和不适用场景的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【unity 笔记】ugui艺术字体
- 下一篇: 10大经典数据分析模型,你知道几个?(二