MongoDB學習筆記(一)

2021-12-30 02:26:55 字數 2305 閱讀 9183

一、nosql資料庫介紹

nosql(not onlysql)

泛指非關係型的資料庫。隨著網際網路web2.0**的興起,傳統的關聯式資料庫在應付web2.0**,特別是超大規模和高併發的sns型別的web2.0純動態**已經顯得力不從心,暴露了很多難以克服的問題,而非關係型的資料庫則由於其本身的特點得到了非常迅速的發展。nosql資料庫的產生就是為了解決大規模資料集合多重資料種類帶來的挑戰,尤其是大資料應用難題。

有名的nosql資料庫有:cassandra、mongodb、couchdb、redis、 riak、membase、neo4j 和 hbase

二、nosql資料庫四大類

鍵值(key-value)儲存資料庫

這一類資料庫主要會使用到乙個雜湊表,這個表中有乙個特定的鍵和乙個指標指向特定的資料。key/value模型對於it系統來說的優勢在於簡單、易部署。但是如果dba只對部分值進行查詢或更新的時候,key/value就顯得效率低下了。[3] 舉例如:tokyo cabinet/tyrant, redis, voldemort, oracle bdb.

列儲存資料庫。

這部分資料庫通常是用來應對分布式儲存的海量資料。鍵仍然存在,但是它們的特點是指向了多個列。這些列是由列家族來安排的。如:cassandra, hbase, riak.

文件型資料庫

文件型資料庫的靈感是來自於lotus notes辦公軟體的,而且它同第一種鍵值儲存相類似。該型別的資料模型是版本化的文件,半結構化的文件以特定的格式儲存,比如json。文件型資料庫可 以看作是鍵值資料庫的公升級版,允許之間巢狀鍵值。而且文件型資料庫比鍵值資料庫的查詢效率更高。如:couchdb, mongodb. 國內也有文件型資料庫sequoiadb,目前已經開源。

圖形(graph)資料庫

圖形結構的資料庫同其他行列以及剛性結構的sql資料庫不同,它是使用靈活的圖形模型,並且能夠擴充套件到多個伺服器上。nosql資料庫沒有標準的查詢語言(sql),因此進行資料庫查詢需要制定資料模型。許多nosql資料庫都有rest式的資料介面或者查詢api。[2] 如:neo4j, infogrid, infinite graph.

因此,我們總結nosql資料庫在以下的這幾種情況下比較適用:1、資料模型比較簡單;2、需要靈活性更強的it系統;3、對資料庫效能要求較高;4、不需要高度的資料一致性;5、對於給定key,比較容易對映複雜值的環境。

nosql資料庫的四大分類**分析

分類

examples舉例

典型應用場景

資料模型

優點缺點

鍵值(key-value)

tokyo cabinet/tyrant, redis, voldemort, oracle bdb

內容快取,主要用於處理大量資料的高訪問負載,也用於一些日誌系統等等。

key 指向 value 的鍵值對,通常用hash table來實現

查詢速度快

資料無結構化,通常只被當作字串或者二進位制資料

列儲存資料庫

cassandra, hbase, riak

分布式的檔案系統

以列簇式儲存,將同一列資料存在一起

查詢速度快,可擴充套件性強,更容易進行分布式擴充套件

功能相對侷限

文件型資料庫

couchdb, mongodb

web應用(與key-value類似,value是結構化的,不同的是資料庫能夠了解value的內容)

key-value對應的鍵值對,value為結構化資料

資料結構要求不嚴格,表結構可變,不需要像關係型資料庫一樣需要預先定義表結構

查詢效能不高,而且缺乏統一的查詢語法。

圖形(graph)資料庫

neo4j, infogrid, infinite graph

社交網路,推薦系統等。專注於構建關係圖譜

圖結構利用圖結構相關演算法。比如最短路徑定址,n度關係查詢等

很多時候需要對整個圖做計算才能得出需要的資訊,而且這種結構不太好做分布式的集群方案。

三、nosql資料庫與sql資料庫對比

資料庫型別

資料庫特徵

sql資料庫

事實一致性 事務 多表聯合查詢

nosql資料庫

簡單便捷 方便擴充套件 更好的效能

mongodb學習筆記一

昨天找了些資料學習mongodb,主要參考 8天學通mongodb,按照提示內容一步一步往下做。遇到以下兩個問題 一 在使用mongo連線test資料庫時,連線失敗。如圖 原因是由於伺服器斷開了。在ie位址列中輸入http localhost 28017 不能開啟。伺服器必須開啟,處於執行狀態。二 ...

MongoDB 學習筆記一

一 mongodb 的基本操作 1 建立資料庫 use mytest 建立資料庫,名稱為 mytest 2 顯示資料庫 show dbs 3 顯示文件 show collections 4 向集合中插入文件 db.mytest.insert 5 更新資料 db.mytest.update 6 刪除集...

mongodb學習筆記一

上mongodb官網有32bit和64bit 根據業界規則,偶數為 穩定版 如 1.6.x,1.8.x 奇數為 開發版 如 1.7.x,1.9.x 32bit的mongodb最大只能存放2g的資料,64bit就沒有限制。二 啟動 啟動前,在於bin同級的資料夾下建立2個資料夾,乙個檔案。要給mong...