一、定義
高效能、開源、無模式的文檔型NoSql資料庫
注意:1、檔案儲存體格式為BSON(一種Json的擴充,2進位表達、效率高)
2、模式自由:無表結構
3、支援動態查詢:條件查詢、分頁查詢和統計查詢
4、支援完全索引:有一般索引和完全索引
5、支援複製和故障恢複
例:{"hello":"world"}---------->{"\x16\x00\x00\x00\x02hello\xoo","\x06\x00\x00\x00world\x00\x00"}
6、使用高效率的位元據儲存,包括大型物件(視頻)
7、自動處理片段,以支援計算層次的擴充性
8、支援Java、Ruby、python,c++等語言
9、支援JavaScript
二、優勢
1、查詢速度快
2、高並發,約2萬個;oracle企業版的並發數,單節點是5000個
3、高容量10TB以上
三、MongoDb適用情境
1、網站資料------>即時插入更新
2、緩衝--------》如redis
3、大尺寸、低價值的資料
4、高伸縮性的情境--------》數百台伺服器的叢集
5、用於對象及Json資料存放區
如:sourceforge----------------->開源託管網站
四、Mongodb的使用限制
1、32位的作業系統上,不支援2.5G的資料存放區
2、單個檔案大小《=16M
3、不支援高度事物的系統:如銀行系統或會計系統,需要大量的原子性複雜事物
4、傳統的商業智慧應用
五、與關係性資料庫的對比
1、Mongodb
資料庫、集合、文檔(表中的一行資料)、鍵(表欄位)、無主外鍵、靈活性擴充極高
2、關係性資料庫(oracle、mysql)
資料庫、二維表、一條記錄(表中的一行資料)、列(表欄位)、PK和FK(主外鍵)、靈活性擴充差
六、Mongodb的安裝
1、下載:www.mongodb.org
2、解壓下載的壓縮包,更名為mongo
3、本地磁碟建立Mongodb的檔案夾,用於儲存mongo資料檔案
4、啟動服務:mongod.exe
啟動用戶端:mongo.exe
註:服務端用於資料存放區、用戶端用於資料的訪問
5、設定語句:
d:\mongo\bin\mongod --dbpath=d:\db --logpath=F:\mongo\logs\mongodb.log --port=27017
註:dbpath代表mongodb的資料存放地址,logpath代表mongodb的記錄檔地址,port代表訪問的連接埠號碼
七、mongo的命令參數說明
1、dbpath:資料檔案的存放路徑,用於防止用一個勢力多次啟動並執行Mongof.lock也儲存在此目錄中
2、logpath:記錄檔的目錄
3、logappend:記錄檔採用追加模式,預設是直接覆蓋模式
4、bind_ip:對外服務的綁定ip,一般設定為空白及綁定在本機所有可用的ip上
5、port :對外服務連接埠,web管理連接埠在這個port的基礎上 減去1000
6、fork :linux下使用,表示以後台Daemon形式運行服務
7、journal:開啟日誌功能,用於恢複日誌
8、syncdelay:系統同步重新整理磁碟的時間(預設是60s),和redis類似
9、directoryperdb:每個db存放在單獨的目錄中,便於維護
10、maxconns:最大串連數
11、repairpath:恢複資料的機制,不常用。若為開啟journal,異常down機後重啟就必須要執行require操作