為什么需要MongoDB


為什么需要MongoDB

MongoDB與MySQL的區別
關於MongoDB與MySQL的區別可以參考網上關於NoSQL與MySQL的區別,以下是找到的網上的關於兩者區別的截圖:

 


總體上講:

由於MongoDB獨特的數據處理方式,可以將熱點數據加載到內存,故而對查詢來講,會非常快(當然也會非常消耗內存);同時由於采用了BSON的方式存儲數據,故而對JSON格式數據具有非常好的支持性以及友好的表結構修改性,文檔式的存儲方式,數據友好可見;數據庫的分片集群負載具有非常好的擴展性以及非常不錯的自動故障轉移(大贊)。

不足:數據庫的查詢采用了特有的查詢方式,有一定的學習成本(不高);索引不咋滴;鎖只能提供到collection級別,還做不到行級鎖;沒有事務機制(不能回滾啊);學習資料肯定沒有MySQL的多。

MongoDB與Hadoop的區別
MongoDB側重於對數據進行操作的應用系統,而Hadoop則側重於對數據進行分析統計的應用。
MongoDB能夠滿足對數據庫讀寫性能具有極高要求的應用場景(很消耗memory的),一般這些應用的響應延遲會要求控制在10ms以下,甚至更低。而Hadoop由於每一次的讀寫操作會包含大量數據(Hadoop更適合少次操作大批量數據的場景),通過聚集分析處理大量數據,這種分析一般都會走MapReduce,會造成很高的延遲(數分鍾到數小時不等)

不適合MongoDB的場景
如果業務中存在大量復雜的事務邏輯操作,則不要用MongoDB數據庫

MongoDB能為我解決哪些問題
一般來講,我會將MySQL中的部分表遷移到MongoDB中,主要是涉及到車輛歷史軌跡以及溫濕度數據等機器采集到的數據,而訂單數據、客戶數據等信息,仍然放到MySQL數據庫中,主要是因為這兩類數據實時采集,實時更新,會隨着時間的推移,項目的擴大(PAAS服務),造成非常巨大的數據量,而一般MySQL在單表數據量超過500萬后,性能就會下降的比較快,雖然可以通過分表的方式進行處理,但是隨着時間的增長,仍然會給我帶來比較大的麻煩(如查詢等),這樣,就不如將其放到MongoDB中存儲,查詢什么的都會比較方便,不過需要注意根據片鍵分片哦。
————————————————
版權聲明:本文為CSDN博主「linfenliang」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/linfenliang/article/details/54946448


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM