一、
1、基於分布式文件存儲
2、高負載情況下添加更多節點,可以保證服務器性能
3、將數據存儲為一個文檔
二、比較
1、穩定性
2、索引,索引放在內存中,能夠提升隨機讀寫的性能。如果索引不能完全放在內存,一旦出現隨機讀寫比較高的時候,就會頻繁地進行磁盤交換,MongoDB的性能就會急劇下降
3、占用的空間很大,因為它屬於典型空間換時間原則的類型。那么它的磁盤空間比普通數據庫會浪費一些,而且到目前為止它還沒有實現在線壓縮功能,
在MongoDB中頻繁的進行數據增刪改時,如果記錄變了,例如數據大小發生了變化,這時候容易產生一些數據碎片,出現碎片引發的結果,
一個是索引會出現性能問題,
另外一個就是在一定的時間后,所占空間會莫明其妙地增大,所以要定期把數據庫做修復,定期重新做索引,這樣會提升MongoDB的穩定性和效率。
在最新的版本里,它已經在實現在線壓縮,估計應該在2.0版左右,應該能夠實現在線壓縮,可以在后台執行現在repair DataBase的一些操作。如果那樣,就解決了目前困擾
我們的大問題。
4、MongoDB對數據間的事務關系支持比較弱
5、運維不方便
MongoDB的優勢
1. 適合那些對數據庫具體數據格式不明確或者數據庫數據格式經常變化的需求模型,而且對開發者十分友好。
2.自帶一個分布式文件系統,可以很方便地部署到服務器機群上。
MongoDB里有一個Shard的概念,就是方便為了服務器分片使用的。每增加一台Shard,MongoDB的插入性能也會以接近倍數的方式增長,磁盤容量也很可以很方便地擴充。
3. 自帶了對map-reduce運算框架的支持,這也很方便進行數據的統計。類似於group by
mongodb與mysql命令對比 傳統的關系數據庫一般由數據庫(database)、表(table)、記錄(record)三個層次概念組成,
MongoDB是由數據庫(database)、集合(collection)、文檔對象(document)三個層次組成。
MongoDB對於關系型數據庫里的表,但是集合中沒有列、行和關系概念,這體現了模式自由的特點。
摘自:http://www.cnblogs.com/caihuafeng/p/5494336.html