mongodb和NoSql的區別:兩者沒有什么區別可言,mongodb屬于NoSql的一種,NoSql是指非關系型數據庫的意思,而在mongodb是一個介于關系數據庫和非關系數據庫之間的產品,其中非關系數據庫當中功能最豐富,因此mongodb就是一個NoSql數據庫,能夠支持多種查詢語言、二維空間索引,主要用來解決用戶多、數量大的效率問題。
具體內容如下:
NoSQL
1、NoSQL簡介
NoSQL(Not Only SQL),意思是”不僅僅是SQL”,值的是非關系型數據庫,是一項全新的數據庫革命性運動,早期就有人提出,發展至2009年趨勢越發的高漲,NoSQL的擁護者們提倡運用非關系型的數據存儲,相對于鋪天蓋地的關系型數據庫運用,這一概念無疑是一種全新的思維的注入。
關系型數據庫中的表都是存儲一些格式化的數據結構,每條記錄的字段的組成都一樣,即使不是每條記錄都需要所有的字段,但數據庫會為每條數據分配所有的字段。而非關系型數據庫以鍵值對(key-value)存儲,它的結構不固定,每一條記錄可以有不一樣的鍵,每條記錄可以根據需要增加一些自己的鍵值對,這樣就不會局限于固定的結構,可以減少一些時間和空間的開銷。
2、常見的NoSQL數據庫:
CouchDB
Redis
MongoDB
Neo4j
HBase
BigTable(Hadoop常用)
由此可見MongoDB就是一個NoSQL數據庫。
MongoDB
什么是MongoDB?
MongoDB是一個基于分布式文件存儲的數據庫,由C++語言編寫,皆在為WEB應用提供可擴展的高性能數據存儲解決方案
MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。它支持的數據結構非常松散,是類似于Json的bson 格式,因此可以存儲比較復雜的數據類型,MongoDB最大的特點是它支持的查詢語言方法非常強大,其語言的特點類似于面向對象的查詢語言,幾乎可以實現類似于關系數據庫單表查詢的絕大部分功能。而且支持對數據建立索引
MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數據庫系統。
在高負載的情況下,添加更多的節點,可以保證服務器性能。
MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。
MongoDB 將數據存儲為一個文檔,數據結構由鍵值(key=>value)對組成。
MongoDB 文檔類似于 JSON 對象。字段值可以包含其他文檔,數組及文檔數組。
MongoDB的特點
優點
1.更高的寫負載,MongoDB擁有更高的插入速度。
2.處理很大的規模的單表,當數據表太大的時候可以很容易的分割表。
3.高可用性,設置M-S不僅方便而且很快,MongoDB還可以快速、安全及自動化的實現節點(數據中心)故障轉移。
4.快速的查詢,MongoDB支持二維空間索引,比如管道,因此可以快速及精確的從指定位置獲取數據。MongoDB在啟動后會將數據庫中的數據以文件映射的方式加載到內存中。如果內存資源相當豐富的話,這將極大地提高數據庫的查詢速度。
5.非結構化數據的爆發增長,增加列在有些情況下可能鎖定整個數據庫,或者增加負載從而導致性能下降,由于MongoDB的弱數據結構模式,添加1個新字段不會對舊表格有任何影響,整個過程會非常快速。
缺點
1.不支持事務。
2.MongoDB占用空間過大 。
3.MongoDB沒有成熟的維護工具。