我想從安全性和數據量這兩個方面進行闡述。mysql
mongodb與mysql命令對比 傳統的關係數據庫通常由數據庫(database)、表(table)、記錄(record)三個層次概念組成,sql
MongoDB是由數據庫(database)、集合(collection)、文檔對象(document)三個層次組成。mongodb
MongoDB對於關係型數據庫裏的表,可是集合中沒有列、行和關係概念,這體現了模式自由的特色。數據庫
MongoDB自己它還算比較年輕的一個產品,因此它的問題,就是成熟度確定沒有傳統MySQL那麼成熟穩定。因此在使用的時候,安全
第一,儘可能使用穩定版,不要在線上使用開發版,這是一個大原則;性能
另一點,備份很重要,MongoDB若是出現一些異常狀況,備份必定是要能跟上。除了經過傳統的複製的方式來作備份,離線備份也仍是要有,無論你是用什麼方式,都要有一個完整的離線備份。每每最後出現了特殊狀況,它能幫助到你;對象
另外,MongoDB性能的一個關鍵點就是索引,索引是否是能有比較好的使用效率,索引是否是可以放在內存中,這樣可以提高隨機讀寫的性能。若是你的索引不能徹底放在內存中,一旦出現隨機讀寫比較高的時候,它就會頻繁地進行磁盤交換,這個時候,MongoDB的性能就會急劇降低,會出現波動。索引
另外,MongoDB還有一個最大的缺點,就是它佔用的空間很大,由於它屬於典型空間換時間原則的類型。那麼它的磁盤空間比普通數據庫會浪費一些,並且到目前爲止它尚未實如今線壓縮功能,在MongoDB中頻繁的進行數據增刪改時,若是記錄變了,例如數據大小發生了變化,這時候容易產生一些數據碎片,出現碎片引起的結果,一個是索引會出現性能問題,內存
另一個就是在必定的時間後,所佔空間會莫明其妙地增大,因此要按期把數據庫作修復,按期從新作索引,這樣會提高MongoDB的穩定性和效率。在最新的版本里,它已經在實如今線壓縮,估計應該在2.0版左右,應該可以實如今線壓縮,能夠在後臺執行如今repair DataBase的一些操做。若是那樣,就解決了目前困擾咱們的大問題。開發