對於SQL數據庫(關係型數據庫)咱們你們都有所瞭解,好比MySQL,sqlserver,oracle等數據庫。在平常的開發過程當中咱們遇到服務器端的數據存儲時幾乎第一反應就是使用SQL據庫像咱們最多見的Mysql數據庫。正則表達式
數據庫存在的意義就是存儲和讀取數據,SQL數據庫用二維表存儲數據,在使用過程當中咱們會以爲這種存儲方式能夠很形象的表示出數據之間的關係。尤爲是SQL語句的出現使得SQL數據庫的使用變得更加普遍容易。可是注重嚴密的數據關係帶來的就是拓展性差和大量數據存儲時性能的問題。sql
NoSQL數據庫(非關係數據庫)它的出現就是爲了解決上述問題。它去掉了數據之間的關係重視數據的讀寫使得它在大數據的存儲上表現出很棒的性能,數據庫
它沒有固定的表結構使得它在拓展上表現的很是靈活。json
MongoDB是由C++語言編寫的基於分佈式文件存儲的開源數據庫系統是最經常使用的NoSQL數據庫也是最像SQL類型的數據庫。它採用的數據存儲方式是json----key:value方式,在存儲數據時不須要提早規定表的結構它的數據存儲在文檔中(document)大量的文檔組成集合(collection)大量的集合組成數據庫。數組
MongoDB的數據存儲於SQL語句的對照:服務器
MongoDB支持的數據類型有:null、boolean、String、objectId、32位整數、64位整數、64位浮點數、日期、正則表達式、js代碼、二進制數據、數組、內嵌文檔、最大值、最小值、未定義類型。 oracle
MongoDB最大的特色是他支持的查詢語言很是強大,其語法有點相似於面向對象的查詢語言,幾乎能夠實現相似關係數據庫單表查詢的絕大部分功能,並且還支持對數據創建索引。分佈式
MongoDB的使用場景:sqlserver
1:數據的插入,更新和查找。性能
2:適合文檔化格式的存儲與查詢。
3:適合由數十或數百臺服務器組成的數據庫。
不適用的場景:
1:對於事務型要求比較高的系統。
2:傳統的商業智能應用。
3:複雜的表級聯查詢。
總結:對於實際的項目應用中能夠結合數據的特徵和數據存儲量進行合理的數據庫選取,必要時能夠結合使用SQL數據庫和NoSQL數據庫,這樣能夠極大程度的緩解數據庫的性能壓力展示數據之間的關係。