溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

為什么使用MongoDB?

發(fā)布時間:2020-03-01 17:26:14 來源:網(wǎng)絡(luò) 閱讀:1902 作者:愛情89757 欄目:MongoDB數(shù)據(jù)庫

1.為什么要學(xué)習(xí)?

        項目需要,公司需要通過從以往的日志記錄以及購買信息中挖掘有價值的信息,數(shù)據(jù)量大結(jié)構(gòu)復(fù)雜;

        項目的需求決定要解決數(shù)據(jù)庫高并發(fā)讀寫,海量數(shù)據(jù)的高效存儲和訪問以及高可擴(kuò)展和高可用性等問題。

        mongoDB(非結(jié)構(gòu)化數(shù)據(jù)庫)不僅可以處理結(jié)構(gòu)化數(shù)據(jù),而且更適合處理非結(jié)構(gòu)化數(shù)據(jù)(文本、圖像、超媒體等信息)。它突破了關(guān)系型數(shù)據(jù)庫結(jié)構(gòu)定義不易改變而且數(shù)據(jù)定長的限制,在處理連續(xù)信息和非結(jié)構(gòu)化信息中有著關(guān)系型數(shù)據(jù)庫無法比擬的優(yōu)勢。

        MongoDB的優(yōu)勢:大數(shù)據(jù)量高性能,易擴(kuò)展,高可用性,輕松實現(xiàn)大數(shù)據(jù)量的存儲;完善的Java API,存儲格式時JSON,對JAVA,JS來說非常好處理,運維起來很方便,清晰的版本控制,非?;钴S的社區(qū)。

        關(guān)系型數(shù)據(jù)庫不擅長:大量數(shù)據(jù)的寫入;字段不固定,表結(jié)構(gòu)變更;簡單查詢需要快速返回結(jié)果;

        MongoDB在各大互聯(lián)網(wǎng)公司廣泛使用,涉及范圍廣,使用簡單。

2.MongoDB都有哪些特性?

        面向文檔存儲:BSON

        面向集合存儲:易存儲對象類型的數(shù)據(jù)。

        強(qiáng)大的查詢功能:支持豐富的查詢表達(dá)式。使用json形式的標(biāo)記,可以查詢文檔中內(nèi)嵌的對象及數(shù)組。

        完整的查詢功能:全索引支持包括內(nèi)嵌對象及數(shù)組。查詢優(yōu)化器生成高效查詢計劃。

        模式自由:集合中的鍵不要求一致,鍵值不要求一致的數(shù)據(jù)類型。不知道它的任何結(jié)構(gòu)定義

        復(fù)制(主從復(fù)制/副本集)及自動故障轉(zhuǎn)移:用于故障恢復(fù),讀擴(kuò)展;Mongo數(shù)據(jù)庫支持服務(wù)器之間的數(shù)據(jù)復(fù)制,支持主從模式        以及服務(wù)器之間的相互復(fù)制

        分片(自動分片):用于負(fù)載均衡,寫擴(kuò)展。支持水平的數(shù)據(jù)庫集群,動態(tài)添加額外的機(jī)器

        GridsFS:避免文件系統(tǒng)對目錄做文件數(shù)目的限制。不會產(chǎn)生磁盤碎片

        支持RUBY,PYTHON,JAVA,C++等多語言,多平臺

        查詢監(jiān)視:監(jiān)視工具用于分析數(shù)據(jù)庫操作性能

        緩存服務(wù):對關(guān)系性數(shù)據(jù)庫數(shù)據(jù)進(jìn)行緩存,減少數(shù)據(jù)壓力

        自動處理碎片

三、MongoDB在數(shù)據(jù)庫中存儲二進(jìn)制數(shù)據(jù)的解決方案?

       兩種:第一種是像存儲普通數(shù)據(jù)那樣,將文件轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)存入mongodb,第二種使用gridfs 

       第一種:先讀取文件內(nèi)容,然后塞進(jìn)bson.binary.Binary對象里,最后像平常那樣寫入數(shù)據(jù)庫;獲取文件一樣的簡單,像平時那樣查找數(shù)據(jù),然后將二進(jìn)制內(nèi)容寫入文件即可;

      第二種如果是大文件可以使用gridfs

      gridfs會把文件分成若干塊來存儲,每一塊的大小默認(rèn)為256K,所以,如果是小文件,就不要用gridfs來存儲了,不然會浪費空間的,gridfs是MongoDB之上的分布式文件系統(tǒng),可以使用mongodb的分片和復(fù)制機(jī)制,因為Mongodb分配數(shù)據(jù)空間時以2GB為單位,所以gridfs不產(chǎn)生磁盤碎片。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI