NoSQL已經流行了很長一段時間,那么究竟是什么場景下你才更需要用到這些“新興事物”,就比如MongoDB?下面是一些總結:
你期望一個更高的寫負載
默認情況下,對比事務安全,MongoDB更關注高的插入速度。如果你需要加載大量低價值的業務數據,那么MongoDB將很適合你的用例。但是必須避免在要求高事務安全的情景下使用MongoDB,比如一個1000萬美元的交易。
不可靠環境保證高可用性
設置副本集(主-從服務器設置)不僅方便而且很快,此外,使用MongoDB還可以快速、安全及自動化的實現節點(或數據中心)故障轉移。
未來會有一個很大的規模
數據庫擴展是非常有挑戰性的,當單表格大小達到5-10GB時,MySQL表格性能會毫無疑問的降低。如果你需要分片并且分割你的數據庫,MongoDB將很容易實現這一點。
使用基于位置的數據查詢
MongoDB支持二維空間索引,因此可以快速及精確的從指定位置獲取數據。
非結構化數據的爆發增長
給RDBMS增加列在有些情況下可能鎖定整個數據庫,或者增加負載從而導致性能下降,這個問題通常發生在表格大于1GB(更是下文提到BillRun系統中的痛點——單表格動輒幾GB)的情況下。鑒于MongoDB的弱數據結構模式,添加1個新字段不會對舊表格有任何影響,整個過程會非常快速;因此,在應用程序發生改變時,你不需要專門的1個DBA去修改數據庫模式。
缺少專業的數據庫管理員
如果你沒有專業的DBA,同時你也不需要結構化你的數據及做join查詢,MongoDB將會是你的首選。MongoDB非常適合類的持久化,類可以被序列化成JSON并儲存在MongoDB。需要注意的是,如果期望獲得一個更大的規模,你必須要了解一些最佳實踐來避免走入誤區。
BillRun——使用MongoDB的賬單系統|2014年2月MUG IL(來自oc666)現實用例學習:賬單
在上一次的ILMUG上,Ofer Cohen提出了BillRun,一個下一代基于MongoDB的開源賬單解決方案。這個賬單系統已被增速最快的以色列移動電話運營商采用,每月處理超過5億的CDR(通訊記錄),Ofer分享了該系統如何利用MongoDB的優勢:
PPT請訪問Slide Share
弱數據結構模式允許系統快速引入新的CDR類型,BillRun負責托管所有的數據。BillRun系統已經管理了TB級的表格,I/O性能受限于新字段的增加及數據體積的增長。快速副本集允許更簡單地設置多數據中心DRP和HA方案。分片允許I/O超預算時的線性橫向擴展。在CDR插入達到2000個每秒時,MongoDB非常適用于高寫入系統。同時,你完全可以使用findAndModify(會影響性能)以及2階段提交(應用程序級別)來解決事務問題。面向開發者的查詢允許優雅查詢的編寫。基于位置允許更好的分析用戶使用情況,從而更好地制定移動電話基礎設施的投入點。
總結
MongoDB是個非常不錯的工具,但是只有在適合的場景下才能爆發出壓倒性優勢,BillRun就是一個不錯的用例。
以上所述就是本文的全部內容了,希望大家能夠喜歡。
您可能感興趣的文章:- PHP對MongoDB[NoSQL]數據庫的操作
- 大數據時代的數據庫選擇:SQL還是NoSQL?
- 8種主流NoSQL數據庫系統特性對比和最佳應用場景
- 初識NoSQL NoSql數據庫入門 NoSql數據庫基礎知識
- NoSQL反模式 - 文檔數據庫篇
- 最新統計排名前十的SQL和NoSQL數據庫排行榜
- 純Python開發的nosql數據庫CodernityDB介紹和使用實例
- NoSQL和Redis簡介及Redis在Windows下的安裝和使用教程
- MongoDB系列教程(一):NoSQL起源
- NoSQL數據庫的分布式算法詳解
- 深入解析NoSQL數據庫的分布式算法(圖文詳解)
- NoSQL開篇之為什么要使用NoSQL
- 8 種常用的 NoSQL 數據庫系統對比分析
- NoSQL 數據庫你應該了解的 10 件事