mongodb如何定位?


mongo資料庫本身就介於redis內存資料庫和mysql資料庫之間。

以下側重於mongo的優點。

mongo V redis,

1:redis受內存的限制,無法存儲海量的數據;mongo可以存儲海量的數據。

2:redis僅支持簡單的string、hash、list、set、zset數據結構,而mongo支持文檔型的數據結構,可以說就是JSON字元串,這種數據結構是多麼的靈活,使用是多麼的方便,想必不用過多介紹。

3:redis可以提供複雜的查詢嗎?mongo笑笑不語。

4:redis有內置數據分析功能(mapreduce)嗎?

再來看mongo V mysql

1:mongo的文檔型數據結構,每一個文檔可以映射為編程語言中的一個獨立對象,同一個集合的文檔之間的數據結構完全不必相同,如此靈活的數據結構,可以輕鬆的適應業務邏輯變更。mysql這類的關係資料庫,怎麼比?

2:mongo的插入速度比MySQL更快。

3:mongo可以輕鬆的分散式擴展,不需要停機,不需要更改應用程序。

三者其實各有優缺點,對應不同的資料庫應用場景的。

什麼時候需要mongo?

  • 不需要跨文檔或跨表的事務,也不需要複雜的join查詢支持
  • 業務變更頻繁,導致數據結構需要頻繁更改
  • 需要大量的地理位置查詢,文本查詢
  • 海量數據存儲,且數據量快速增加

Mongo其實彌補了redis和mysql中的不足。個人在爬蟲中,經常採用mongo保存爬取的數據,而redis保存待爬取的鏈接和用於網頁去重。


mongodb的解決方案在幾乎所有情況下都不如nas…或者說nfs…說白話就是直接讀寫網上鄰居的磁碟…

但只有一種情況例外…就是你不想讓開發者有權讀寫這個磁碟…mongodb的定位就是如此…僅此…


推薦閱讀:

檔案編號,針對同一原物有多重屬性,同時需要分入不同分類,如何編號?
類似 Neo4j 這樣的圖資料庫在國內會興起么?為什麼?
在資料庫中,農曆應該使用什麼數據類型存儲?
有什麼適合小團隊的協作工具?
用於量化投資策略(最高日頻率)研究的金融資料庫,用 MySQL 是否足夠?有哪些可能遇到的瓶頸?

TAG:MySQL | Redis | 資料庫 | 科技 |