mongodb 的使用场景和不适合使用的场景
1.mongodb介紹
? ? MongoDB (名稱來自"humongous") 是一個(gè)可擴(kuò)展的高性能,開源,模式自由,面向文檔的數(shù)據(jù)庫。它使用C++編寫。MongoDB特點(diǎn):
? a.面向集合的存儲(chǔ):適合存儲(chǔ)對(duì)象及JSON形式的數(shù)據(jù)。
? b.動(dòng)態(tài)查詢:mongo支持豐富的查詢表達(dá)方式,查詢指令使用JSON形式的標(biāo)記,可輕易查詢文檔中的內(nèi)嵌的對(duì)象及數(shù)組。
? c.完整的索引支持:包括文檔內(nèi)嵌對(duì)象及數(shù)組。mongo的查詢優(yōu)化器會(huì)分析查詢表達(dá)式,并生成一個(gè)高效的查詢計(jì)劃。
? d.查詢監(jiān)視:mongo包含一個(gè)監(jiān)視工具用于分析數(shù)據(jù)庫操作性能。
? e.復(fù)制及自動(dòng)故障轉(zhuǎn)移:mongo數(shù)據(jù)庫支持服務(wù)器之間的數(shù)據(jù)復(fù)制,支持主-從模式及服務(wù)器之間的相互復(fù)制。復(fù)制的主要目的是提供冗余及自動(dòng)故障轉(zhuǎn)移。
? f.高效的傳統(tǒng)存儲(chǔ)方式:支持二進(jìn)制數(shù)據(jù)及大型對(duì)象(如照片或圖片)。
? g.自動(dòng)分片以支持云級(jí)別的伸縮性:自動(dòng)分片功能支持水平的數(shù)據(jù)庫集群,可動(dòng)態(tài)添加額外的機(jī)器。
2.mongo使用場合
? ? mongodb的主要目標(biāo)是在鍵/值存儲(chǔ)方式(提供了高性能和高度伸縮性)以及傳統(tǒng)的RDBMS系統(tǒng)(豐富的功能)架起一座橋梁,集兩者的優(yōu)勢于一身。mongo適用于以下場景:
? a.網(wǎng)站數(shù)據(jù):mongo非常適合實(shí)時(shí)的插入,更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性。
? b.緩存:由于性能很高,mongo也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由mongo搭建的持久化緩存可以避免下層的數(shù)據(jù)源過載。
? c.大尺寸、低價(jià)值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫存儲(chǔ)一些數(shù)據(jù)時(shí)可能會(huì)比較貴,在此之前,很多程序員往往會(huì)選擇傳統(tǒng)的文件進(jìn)行存儲(chǔ)。
? d.高伸縮性的場景:mongo非常適合由數(shù)十或者數(shù)百臺(tái)服務(wù)器組成的數(shù)據(jù)庫。
? e.用于對(duì)象及JSON數(shù)據(jù)的存儲(chǔ):mongo的BSON數(shù)據(jù)格式非常適合文檔格式化的存儲(chǔ)及查詢。
不適合的場景:
? a.高度事物性的系統(tǒng):例如銀行或會(huì)計(jì)系統(tǒng)。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫目前還是更適用于需要大量原子性復(fù)雜事務(wù)的應(yīng)用程序。
? b.傳統(tǒng)的商業(yè)智能應(yīng)用:針對(duì)特定問題的BI數(shù)據(jù)庫會(huì)對(duì)產(chǎn)生高度優(yōu)化的查詢方式。對(duì)于此類應(yīng)用,數(shù)據(jù)倉庫可能是更合適的選擇。
? c.需要SQL的問題。
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的mongodb 的使用场景和不适合使用的场景的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 塞纳为什么挂P挡不解锁?
- 下一篇: Eclipse中web项目部署至Tomc