MongoDB的特點和適用場景

2021-07-25 02:23:27 字數 1401 閱讀 3106

mongodb的特點和適用場景實用性

mongodb是乙個面向文件的資料庫,它並不是關係型資料庫,直接訪問bson,這意味著mongodb更加靈活,因為可以在文件中直接插入陣列之類的複雜資料型別,並且文件的key和value不是固定的資料型別和大小,所以開發者在使用mongodb時無須預定義關係型資料庫中的」表」等資料庫物件,設計資料庫將變得非常方便,可以大大地提公升開發進度。

可用性和負載均衡

mongodb在高可用和讀負載均衡上的實現非常簡潔和友好,mongodb自帶了副本集的概念,通過設計適合自己業務的副本集和驅動程式,可以非常有效和方便地實現高可用,讀負載均衡。而在其他資料庫產品中想實現以上功能,往往需要額外安裝複雜的中介軟體,大大提公升了系統複雜度,故障排查難度和運維成本。

擴充套件性

在擴充套件性方面,假設應用資料增長非常迅猛的話,通過不斷地新增磁碟容量和記憶體容量往往是不現實的,而手工的分庫分表又會帶來非常繁重的工作量和技術複雜度。在擴充套件性上,mongodb有非常有效的,現成的解決方案。通過自帶的mongos集群,只需要在適當的時候繼續新增mongo分片,就可以實現程式段自動水平擴充套件和路由,一方面緩解單個節點的讀寫壓力,另外一方面可有效地均衡磁碟容量的使用情況。整個mongos集群對應用層完全透明,並可完美地做到各個mongos集群元件的高可用性。

資料壓縮

自從mongodb 3.0推出以後,mongodb引入了乙個高效能的儲存引擎wiredtiger,並且它在資料壓縮效能上得到了極大的提公升,跟之前的mmap引擎相比,壓縮比至少可增加5倍以上,可以極大地改善磁碟空間使用率。

其他特性

相比其他關係型資料庫,mongodb引入了」固定集合」的概念。所謂固定集合,就是指整個集合的大小是預先定義並固定的,內部就是乙個迴圈佇列,假如集合滿了,mongodb後台會自動去清理舊資料,並且由於每次都是寫入固定空間,可大大地提公升寫入速度。這個特性就非常適用於日誌型應用,不用再去糾結日誌瘋狂增長的清理措施和寫入效率問題。另外需要更加精細的淘汰策略設定,還可以使用ttl索引(time-to-liveindex),即具有生命週期的索引,它允許為每條記錄設定乙個過期時間,當某條記錄達到它的設定條件時可被自動刪除。

在某些lbs的應用中,使用mongodb也有非常巨大的優勢。mongodb支援多種型別的地理空間索引,支援多種不同型別的地理空間查詢,比如intersection,within和nearness等。

mongodb不適用的應用場景

在某些場景下,mongodb作為乙個非關係型資料庫有其侷限性。mongodb不支援事務操作,所以需要用到事務的應用建議不用mongodb,另外mongodb目前不支援join操作,需要複雜查詢的應用也不建議使用mongodb。

mongodb適用和不適用的應用場景

近期考慮把訂單歷史資料從oracle資料庫遷移到nosql資料庫做歷史資料查詢和分析,一天千萬級資料。打算使用mongodb資料庫。使用nodejs做查詢和統計api,對併發請求量要求低,不知道有沒有前輩這樣玩過。我們如今僅僅用mongodo儲存日誌資料,做應用故障分析用。假設有前輩做個類似的歷史庫...

MongoDB的適用場景解析

很多人比較關心 mongodb 的適用場景,也有使用者在話題裡分享了自己的業務場景,比如 案例1用在應用伺服器的日誌記錄,查詢起來比文字靈活,匯出也很方便。也是給應用練手,從外圍系統開始使用mongodb。用在一些第三方資訊的獲取或者抓取,因為mongodb的schema less,所有格式靈活,不...

TiDB適用場景和不適用場景

一 tidb簡介 tidb 是 pingcap 公司受 google spanner f1 啟發而設計的開源分布式 htap hybrid transactional and analytical processing 資料庫,結合了傳統的 rdbms 和nosql 的最佳特性。tidb 相容 my...