關(guān)于NoSQL之MongoDB的一些總結(jié)
NoSQL已經(jīng)流行了很長(zhǎng)一段時(shí)間,那么究竟是什么場(chǎng)景下你才更需要用到這些“新興事物”,就比如MongoDB?下面是一些總結(jié):
你期望一個(gè)更高的寫(xiě)負(fù)載
默認(rèn)情況下,對(duì)比事務(wù)安全,MongoDB更關(guān)注高的插入速度。如果你需要加載大量低價(jià)值的業(yè)務(wù)數(shù)據(jù),那么MongoDB將很適合你的用例。但是必須避免在要求高事務(wù)安全的情景下使用MongoDB,比如一個(gè)1000萬(wàn)美元的交易。
不可靠環(huán)境保證高可用性
設(shè)置副本集(主-從服務(wù)器設(shè)置)不僅方便而且很快,此外,使用MongoDB還可以快速、安全及自動(dòng)化的實(shí)現(xiàn)節(jié)點(diǎn)(或數(shù)據(jù)中心)故障轉(zhuǎn)移。
未來(lái)會(huì)有一個(gè)很大的規(guī)模
數(shù)據(jù)庫(kù)擴(kuò)展是非常有挑戰(zhàn)性的,當(dāng)單表格大小達(dá)到5-10GB時(shí),MySQL表格性能會(huì)毫無(wú)疑問(wèn)的降低。如果你需要分片并且分割你的數(shù)據(jù)庫(kù),MongoDB將很容易實(shí)現(xiàn)這一點(diǎn)。
使用基于位置的數(shù)據(jù)查詢(xún)
MongoDB支持二維空間索引,因此可以快速及精確的從指定位置獲取數(shù)據(jù)。
非結(jié)構(gòu)化數(shù)據(jù)的爆發(fā)增長(zhǎng)
給RDBMS增加列在有些情況下可能鎖定整個(gè)數(shù)據(jù)庫(kù),或者增加負(fù)載從而導(dǎo)致性能下降,這個(gè)問(wèn)題通常發(fā)生在表格大于1GB(更是下文提到BillRun系統(tǒng)中的痛點(diǎn)——單表格動(dòng)輒幾GB)的情況下。鑒于MongoDB的弱數(shù)據(jù)結(jié)構(gòu)模式,添加1個(gè)新字段不會(huì)對(duì)舊表格有任何影響,整個(gè)過(guò)程會(huì)非??焖?;因此,在應(yīng)用程序發(fā)生改變時(shí),你不需要專(zhuān)門(mén)的1個(gè)DBA去修改數(shù)據(jù)庫(kù)模式。
缺少專(zhuān)業(yè)的數(shù)據(jù)庫(kù)管理員
如果你沒(méi)有專(zhuān)業(yè)的DBA,同時(shí)你也不需要結(jié)構(gòu)化你的數(shù)據(jù)及做join查詢(xún),MongoDB將會(huì)是你的首選。MongoDB非常適合類(lèi)的持久化,類(lèi)可以被序列化成JSON并儲(chǔ)存在MongoDB。需要注意的是,如果期望獲得一個(gè)更大的規(guī)模,你必須要了解一些最佳實(shí)踐來(lái)避免走入誤區(qū)。
BillRun——使用MongoDB的賬單系統(tǒng)|2014年2月MUG IL(來(lái)自oc666)現(xiàn)實(shí)用例學(xué)習(xí):賬單
在上一次的ILMUG上,Ofer Cohen提出了BillRun,一個(gè)下一代基于MongoDB的開(kāi)源賬單解決方案。這個(gè)賬單系統(tǒng)已被增速最快的以色列移動(dòng)電話運(yùn)營(yíng)商采用,每月處理超過(guò)5億的CDR(通訊記錄),Ofer分享了該系統(tǒng)如何利用MongoDB的優(yōu)勢(shì):
PPT請(qǐng)?jiān)L問(wèn)Slide Share
弱數(shù)據(jù)結(jié)構(gòu)模式允許系統(tǒng)快速引入新的CDR類(lèi)型,BillRun負(fù)責(zé)托管所有的數(shù)據(jù)。BillRun系統(tǒng)已經(jīng)管理了TB級(jí)的表格,I/O性能受限于新字段的增加及數(shù)據(jù)體積的增長(zhǎng)??焖俑北炯试S更簡(jiǎn)單地設(shè)置多數(shù)據(jù)中心DRP和HA方案。分片允許I/O超預(yù)算時(shí)的線性橫向擴(kuò)展。在CDR插入達(dá)到2000個(gè)每秒時(shí),MongoDB非常適用于高寫(xiě)入系統(tǒng)。同時(shí),你完全可以使用findAndModify(會(huì)影響性能)以及2階段提交(應(yīng)用程序級(jí)別)來(lái)解決事務(wù)問(wèn)題。面向開(kāi)發(fā)者的查詢(xún)?cè)试S優(yōu)雅查詢(xún)的編寫(xiě)。基于位置允許更好的分析用戶使用情況,從而更好地制定移動(dòng)電話基礎(chǔ)設(shè)施的投入點(diǎn)。
總結(jié)
MongoDB是個(gè)非常不錯(cuò)的工具,但是只有在適合的場(chǎng)景下才能爆發(fā)出壓倒性?xún)?yōu)勢(shì),BillRun就是一個(gè)不錯(cuò)的用例。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- PHP對(duì)MongoDB[NoSQL]數(shù)據(jù)庫(kù)的操作
- 大數(shù)據(jù)時(shí)代的數(shù)據(jù)庫(kù)選擇:SQL還是NoSQL?
- 8種主流NoSQL數(shù)據(jù)庫(kù)系統(tǒng)特性對(duì)比和最佳應(yīng)用場(chǎng)景
- 初識(shí)NoSQL NoSql數(shù)據(jù)庫(kù)入門(mén) NoSql數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
- NoSQL反模式 - 文檔數(shù)據(jù)庫(kù)篇
- 最新統(tǒng)計(jì)排名前十的SQL和NoSQL數(shù)據(jù)庫(kù)排行榜
- 純Python開(kāi)發(fā)的nosql數(shù)據(jù)庫(kù)CodernityDB介紹和使用實(shí)例
- NoSQL和Redis簡(jiǎn)介及Redis在Windows下的安裝和使用教程
- MongoDB系列教程(一):NoSQL起源
- NoSQL數(shù)據(jù)庫(kù)的分布式算法詳解
- 深入解析NoSQL數(shù)據(jù)庫(kù)的分布式算法(圖文詳解)
- NoSQL開(kāi)篇之為什么要使用NoSQL
- 8 種常用的 NoSQL 數(shù)據(jù)庫(kù)系統(tǒng)對(duì)比分析
- NoSQL 數(shù)據(jù)庫(kù)你應(yīng)該了解的 10 件事
相關(guān)文章
Ubuntu系統(tǒng)中安裝MongoDB及其啟動(dòng)命令mongod的教程
這篇文章主要介紹了Ubuntu系統(tǒng)中安裝MongoDB及其啟動(dòng)命令mongod的教程,包括設(shè)置MongoDB開(kāi)機(jī)啟動(dòng)的腳本示例,非常推薦,需要的朋友可以參考下2016-01-01
mongodb replica set 配置高性能多服務(wù)器詳解
mongodb的多服務(wù)器配置,以前寫(xiě)過(guò)一篇文章,是master-slave模式的,master-slave模式,不能自動(dòng)實(shí)現(xiàn)故障轉(zhuǎn)移和恢復(fù)。所以推薦大家使用mongodb的replica set,來(lái)實(shí)現(xiàn)多服務(wù)器的高性能。2014-07-07
MongoDB中優(yōu)雅刪除大量數(shù)據(jù)的三種方式
最近接到一個(gè)任務(wù),線上的mongodb積累了大量的無(wú)用數(shù)據(jù),導(dǎo)致宕機(jī),現(xiàn)在對(duì)里面的數(shù)據(jù)進(jìn)行批量刪除,所以這篇文章主要給大家介紹了關(guān)于MongoDB中優(yōu)雅刪除大量數(shù)據(jù)的三種方式,需要的朋友可以參考下2021-10-10
MongoDB入門(mén)教程之C#驅(qū)動(dòng)操作實(shí)例
這篇文章主要介紹了MongoDB入門(mén)教程之C#驅(qū)動(dòng)操作實(shí)例,即C#中操作MongoDB數(shù)據(jù)的方法和代碼示例,需要的朋友可以參考下2014-08-08
MongoDB數(shù)據(jù)庫(kù)中索引和explain的使用教程
這篇文章主要給大家介紹了關(guān)于MongoDB數(shù)據(jù)庫(kù)中索引和explain使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mongodb具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
基于MongoDB數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型和$type操作符詳解
下面小編就為大家?guī)?lái)一篇基于MongoDB數(shù)據(jù)庫(kù)的數(shù)據(jù)類(lèi)型和$type操作符詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
CentOS 6.5 x64系統(tǒng)中安裝MongoDB 2.6.0二進(jìn)制發(fā)行版教程
這篇文章主要介紹了CentOS 6.5 x64系統(tǒng)中安裝MongoDB 2.6.0二進(jìn)制發(fā)行版教程,本文分為6個(gè)步驟完成MongoDB的安裝和啟動(dòng),需要的朋友可以參考下2015-01-01
MongoDB創(chuàng)建和查詢(xún)視圖的方式
本文整理mongodb的官方文檔,介紹mongodb的視圖創(chuàng)建和查詢(xún),在Mongodb中,允許使用兩種方式來(lái)創(chuàng)建視圖,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2023-12-12
Mongodb文檔和數(shù)組的通配符索引應(yīng)用小結(jié)
Mongodb的通配符索引,為靈活可變的Mongodb數(shù)據(jù)結(jié)構(gòu)提供了高效的查詢(xún)方法,本文結(jié)合Mongodb官方文檔,詳細(xì)介紹在嵌入式文檔和數(shù)組上,通配符索引的結(jié)構(gòu),感興趣的朋友一起看看吧2024-07-07

