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

2021-09-08 19:54:33 字數 1222 閱讀 6606

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

假設有前輩做個類似的歷史庫查詢和資料分析,能夠交流下。你們選擇的nosql庫和上層開發語言。

mongodb (名稱來自"humongous") 是乙個可擴充套件的高效能。開源,模式自由,面向文件的資料庫。

它使用c++編寫。mongodb特點:

a.面向集合的儲存:適合儲存物件及json形式的資料。

b.動態查詢:mongo支援豐富的查詢表達方式。查詢指令使用json形式的標記,可輕易查詢文件中的內嵌的物件及陣列。

c.完整的索引支援:包含文件內嵌物件及陣列。mongo的查詢優化器會分析查詢表示式,並生成乙個高效的查詢計畫。

d.查詢監視:mongo包括乙個監視工具用於分析資料庫操作效能。

e.複製及自己主動故障轉移:mongo資料庫支援server之間的資料複製,支援主-從模式及server之間的相互複製。

複製的主要目的是提供冗餘及自己主動故障轉移。

g.自己主動分片以支援雲級別的伸縮性:自己主動分片功能支援水平的資料庫集群,可動態加入額外的機器。

mongodb的主要目標是在鍵/值儲存方式(提供了高效能和高度伸縮性)以及傳統的rdbms系統(豐富的功能)架起一座橋梁,集兩者的優勢於一身。mongo適用於下面場景:

a.站點資料:mongo很適合實時的插入,更新與查詢,並具備站點實時資料儲存所需的複製及高度伸縮性。

b.快取:因為效能非常高,mongo也適合作為資訊基礎設施的快取層。在系統重新啟動之後。由mongo搭建的持久化快取能夠避免下層的資料來源過載。

c.大尺寸、低價值的資料:使用傳統的關聯式資料庫儲存一些資料時可能會比較貴,在此之前。非常多程式猿往往會選擇傳統的檔案進行儲存。

d.高伸縮性的場景:mongo很適合由數十或者數百台server組成的資料庫。

e.用於物件及json資料的儲存:mongo的bson資料格式很適合文件格式化的儲存及查詢。

不適合的場景:

a.高度事物性的系統:比如銀行或會計系統。傳統的關係型資料庫眼下還是更適用於須要大量原子性複雜事務的應用程式。

b.傳統的商業智慧型應用:針對特定問題的bi資料庫會對產生高度優化的查詢方式。

對於此類應用,資料倉儲可能是更合適的選擇。

c.須要sql的問題。

TiDB適用和不適用場景

tidb 的典型的應用場景是 1 原業務的 mysql 的業務遇到單機容量或者效能瓶頸時,可以考慮使用 tidb 無 縫替換 mysql。tidb 可以提供如下特性 2 大資料量下,mysql 複雜查詢很慢。3 大資料量下,資料增長很快,接近單機處理的極限,不想分庫分表或者使用資料庫中介軟體等對業務...

TiDB適用和不適用場景

tidb 的典型的應用場景是 1 原業務的 mysql 的業務遇到單機容量或者效能瓶頸時,可以考慮使用 tidb 無 縫替換 mysql。tidb 可以提供如下特性 吞吐量 儲存和計算能力的水平擴充套件 水平伸縮時不停服務 強一致性分布式 acid 事務 2 大資料量下,mysql 複雜查詢很慢。3...

TiDB適用場景和不適用場景

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