亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

聊聊MongoDB - MongoDB的使用感想

Drummor / 1268人閱讀

摘要:旨在為應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。,是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。目前的最新版本為,最新版本的在我看來更像的數(shù)據(jù)庫,功能更是越發(fā)強(qiáng)大。一些主流的介紹。

簡(jiǎn)述

工作中經(jīng)常接觸MongoDB,學(xué)習(xí)上也有對(duì)它進(jìn)行一些研究,感覺MongoDB這種Nosql類型的數(shù)據(jù)庫給我在開發(fā)上帶來很多便捷,同時(shí)也解決了很多程序開發(fā)過程中在性能上考慮優(yōu)化的可行方案。然而最近我在思考MongoDB看起來很棒,用起來很舒服,但是我是否對(duì)其抱有過分自信和過分依靠它呢?我想聊聊MongoDB的一些我比較看重地方,還有它隱藏的一些缺陷(可能暫時(shí)不明顯,但是日后可能會(huì)成為你自己親手埋下的地雷)。

簡(jiǎn)述MongoDB和NoSQL MongoDB

MongoDB,是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。

MongoDB,是一個(gè)介于關(guān)系數(shù)據(jù)庫(sql)和非關(guān)系數(shù)據(jù)庫(nosql)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型(這一點(diǎn)是我很喜歡,因?yàn)槲医?jīng)常會(huì)把一些經(jīng)常使用的數(shù)據(jù)預(yù)先生成存進(jìn)MongoDB,,相當(dāng)于緩存的做法)。

Mongo,最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引(MongoDB的索引很多,沒記錯(cuò)應(yīng)該有7種,功能完善且強(qiáng)大,有力支持了高效查詢)。

目前MongoDB的最新版本為3.0+,最新版本的MongoDB在我看來更像sql的nosql數(shù)據(jù)庫,功能更是越發(fā)強(qiáng)大。

NoSQL

NoSQL,泛指那些支持非關(guān)系型、分布式數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫,最常見的解釋是“non-relational”或“Not Only SQL”,而“NoSQL”一詞最早于1998年被用于一個(gè)輕量級(jí)的關(guān)系數(shù)據(jù)庫的名字。

NoSQL被我們用得最多的當(dāng)數(shù)key-value存儲(chǔ),當(dāng)然還有其他的文檔型的(這個(gè)我用的比較多,其次是k-v存儲(chǔ))、列存儲(chǔ)、圖型數(shù)據(jù)庫、xml數(shù)據(jù)庫等。

NoSQL有很多優(yōu)勢(shì):NoSQL數(shù)據(jù)庫非常易于擴(kuò)展;NoSQL數(shù)據(jù)庫都具有非常高的讀寫性能,尤其在大數(shù)據(jù)量下,高性能更為突出;NoSQL在不太影響性能的情況,就可以方便的實(shí)現(xiàn)高可用的架構(gòu)(這個(gè)觀點(diǎn)我不太懂,網(wǎng)上給的經(jīng)驗(yàn),可能大平臺(tái)才會(huì)體驗(yàn)到吧)。

一些主流的NoSQL介紹:MongoDB;SequoiaDB;Cassandra。這是目前生產(chǎn)線上主流的三大NoSQL數(shù)據(jù)庫,有興趣大家可以去了解一下。

小結(jié)

通過簡(jiǎn)述MongoDB和NoSQL,相信我們對(duì)非關(guān)系型數(shù)據(jù)庫的了解能有一定收獲了吧,了解一件事物,首先我們必須認(rèn)識(shí)它,現(xiàn)在我們認(rèn)識(shí)了,接下來就是了解它了。

我與MongoDB 我與MongoDB的接觸與感悟

我對(duì)MongoDB的接觸經(jīng)常是進(jìn)行數(shù)據(jù)整理,數(shù)據(jù)加工的時(shí)候會(huì)用到它,一般面對(duì)一些復(fù)制的涉及多表聯(lián)合查詢的業(yè)務(wù)邏輯時(shí),我想跳過多表聯(lián)合查詢尋找在頁面加載時(shí)程序獲取數(shù)據(jù)的最快捷最高效的處理方案,這時(shí)MongoDB給了我一個(gè)不錯(cuò)的選擇(因?yàn)镸ongoDB存儲(chǔ)的是字符串文本而且是支持一對(duì)多關(guān)系結(jié)構(gòu)),這給了我兩個(gè)思考點(diǎn):

第一、我是否可以對(duì)復(fù)雜的數(shù)據(jù)進(jìn)行預(yù)處理,放到MongoDB上面,頁面需要用到的時(shí)候直接拿來用,這樣我只需要讀一次MongoDB就可以了,從而避免多次查表給服務(wù)器帶來的壓力,再說MongoDB對(duì)于高并發(fā)的負(fù)載能力也是很強(qiáng)大的。

第二、面對(duì)一對(duì)多的映射關(guān)系我是否可以用MongoDB集合的一對(duì)多映射解決sql的多個(gè)關(guān)聯(lián)表的冗雜。

有的時(shí)候我甚至覺得MongoDB不再像是數(shù)據(jù)庫,它更像是緩存服務(wù)器,因?yàn)樗嗟氖前褦?shù)據(jù)預(yù)先存儲(chǔ)以備日后使用,但是它跟sql數(shù)據(jù)庫的最新數(shù)據(jù)往往不全是同步的,有一些出現(xiàn)延時(shí)的數(shù)據(jù)就是我想說的視為緩存的數(shù)據(jù),那么問題就來了,怎么更好的保證數(shù)據(jù)的時(shí)效性,我不相信有人希望程序使用舊的數(shù)據(jù),所以保持?jǐn)?shù)據(jù)的新鮮應(yīng)該是產(chǎn)品的最優(yōu)需求,因?yàn)橐粋€(gè)數(shù)據(jù)同步更新機(jī)制的建立很有必要,到底是定時(shí)更新方案還是sql內(nèi)容更新同步方案好呢(我想出來的兩個(gè)我認(rèn)為可行的數(shù)據(jù)同步方案)?一切根據(jù)具體應(yīng)用場(chǎng)景來具體操作。

有的時(shí)候面對(duì)一些頁面的數(shù)據(jù)是暫定不會(huì)變化,比如新聞內(nèi)容,對(duì)象介紹信息等等一些內(nèi)容數(shù)據(jù),這些數(shù)據(jù)很少會(huì)更新,所以很多情況下會(huì)把它們放到MongoDB上,避免重復(fù)查表,也可以理解為緩存到MongoDB上面去了(我的理解),但是我們必須主要在程序上不能單單只依靠MongoDB或緩存上面的哪些數(shù)據(jù),我們?yōu)榱吮苊怙L(fēng)險(xiǎn),應(yīng)該在程序的最后加上原始數(shù)據(jù)的組裝處理,保證數(shù)據(jù)準(zhǔn)確性,因?yàn)闆]人能保證MongoDB永遠(yuǎn)可靠(這里就提到MongoDB的可靠性,這個(gè)爭(zhēng)議比較大的,一些人說MongoDB的數(shù)據(jù)容易丟失,或者在數(shù)據(jù)遷移上出現(xiàn)問題等等),我的觀點(diǎn)的永遠(yuǎn)不要相信數(shù)據(jù)庫,我們要做好一切問題出現(xiàn)的準(zhǔn)備,有備無患。

還有一點(diǎn)就是我想分享一些MongoDB的使用經(jīng)驗(yàn)(這個(gè)日后等我整理好資料后再更新)

總結(jié)

碼了這么多字,其實(shí)就是想說MongoDB很好用,但是不能對(duì)數(shù)據(jù)庫太依靠太放心,它能為我們提供一些很不錯(cuò)的解決方案,但是我們必須在考慮使用它之前先做好任何它掛掉的準(zhǔn)備,同樣面對(duì)其他情況下也要有這種危機(jī)意識(shí),數(shù)據(jù)庫是不能盡信的,一場(chǎng)臺(tái)風(fēng)可能你的機(jī)房就沒了,所以你要備份或者風(fēng)險(xiǎn)規(guī)避機(jī)制,應(yīng)對(duì)突發(fā)的問題做好預(yù)案,保證程序系統(tǒng)安穩(wěn),這個(gè)才是重中之重!

最后歡迎大家指正我的錯(cuò)誤觀點(diǎn),分享你的觀點(diǎn)看法和經(jīng)驗(yàn),大家一起學(xué)習(xí)一起進(jìn)步吧。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/18791.html

相關(guān)文章

  • 聊聊MongoDB - MongoDB使用感想

    摘要:旨在為應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。,是一個(gè)介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。目前的最新版本為,最新版本的在我看來更像的數(shù)據(jù)庫,功能更是越發(fā)強(qiáng)大。一些主流的介紹。 簡(jiǎn)述 工作中經(jīng)常接觸MongoDB,學(xué)習(xí)上也有對(duì)它進(jìn)行一些研究,感覺MongoDB這種Nosql類型的數(shù)據(jù)庫給我在開發(fā)上帶來很多便捷,同時(shí)也解決了很多程序開發(fā)過...

    lolomaco 評(píng)論0 收藏0
  • 聊聊mongodb》系列三 了解一下MongoDB插入文檔操作~

    摘要:布爾類型,表示文檔是否按照有序或者無序插入,默認(rèn)是返回參數(shù)返回了含有操作狀態(tài)的對(duì)象插入文檔成功返回如下對(duì)象字段指明了插入文檔的總數(shù)如果該操作遇到了錯(cuò)誤對(duì)象將包含該錯(cuò)誤信息例子四其它可以向集合中添加文檔的方法和選項(xiàng)一起使用的。 上一節(jié)介紹了MongoDB的基本的命令,以及結(jié)構(gòu)的了解,這一節(jié)的主題是介紹一下MongoDB的插入文檔的操作的基礎(chǔ)命令的使用,MongoDB當(dāng)中文檔的數(shù)據(jù)結(jié)構(gòu)和j...

    ityouknow 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<