MongoDB 介紹
阿新 • • 發佈:2018-02-09
交互模式 col nosql 適合 復制 生產環境 時間 pre -c 官網:https://www.mongodb.com/
國內官網網站:http://www.mongoing.com/
官網中文翻譯:http://docs.mongoing.com/manual-zh/
github : https://github.com/mongodb
bug提交以及回復:https://jira.mongodb.org/secure/Dashboard.jspa
MongoDB是一個可擴展、開源、表結構自由、用C++語言編寫且面向文檔的數據庫,在Web應用程序提供高效性能、高可用性且易擴展的數據存儲解決方案。
MongoDB 是一個介於關系數據庫和非關系數據庫直接的產品,是非關系數據庫中功能最豐富、最像關系數據庫的NoSQL數據庫;它支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,可以實現類似關系數據裏單表查詢的絕大部分功能,切還支持對數據建立索引。
索引類型:
單鍵索引,多建索引 {x:1,y:1}
數組索引:["apple","lemon"]
全文索引: "i am a little bird."(中文)
地理位置索引: 2D
MongoDB還支持Google提供的MapReduce並行編程模式,為大數據分析提供了強有力的保障。
MongoDB同時提供了與Hadoop的接口,與其它第三方數據分析工具完美結合。
一個復制集在生產環境中最少需要3臺獨立機器,主節點(primary),次節點(secondary),仲裁節點(只負責選出主節點)
支持 備份、自動故障轉移,
創建BSON dump 文件的方法 例如:mongodump --port 27017 --db db1 --out /tmp/db1
mongoexport 將MongoDB數據實例中的數據導出來生成JSON 或CSV文件的工具 ; 例如 mongoexport --port 27017 --db db1 --collection t1 --out /tmp/t1.json
mongoimport 將JSON或CSV文件內容導入到MongoDB實例中的工具; 例如 mongoimport --port 27017 --db db1 --collection t1 --file /tmp/t1.json
mongos 是分片中用到的進程,所有應用程序端的查詢操作都會先由它分析,然後將查詢定位到具體某一個分片上,作用與mongod 類似,客戶端的mongo與它連接。
mongofiles 提供了操作MongoDB分布式文件存儲系統的命令行接口; 例如mongofiles --port 21707 --db mydb1 --local /tmp/123.txt put 123.txt (將/tmp/123.txt 上傳到數據mydb1 中保存)
mongostat 提供了一個展示當前正在運行的mongod實例狀態工具,提供的數據只與運行的mongod或mongos 的實例相關。
mongotop 提供一個分析MongoDB實例 在讀寫數據張的時間的跟蹤方法。它提供的統計數據在美國collection 級別上。
mongorestore
mongooplog
關系型數據庫(MySQL) | MongoDB |
database | database |
table | collection |
row | document/object |
SQL數據庫 | NoSQL數據庫 |
實時一致性 | 簡單便捷 |
事務 | 方便擴展 |
多表聯合查詢 | 更好的性能 |
基本單元:
關系數據庫---行 MongoDB --document(用於JSON格式類似的鍵值對來存儲,MongoDB叫BSON對象)MongoDB 日誌功能 Journaling
對數據庫的增、刪、改 操作會記錄在日誌文件中。每100ms將內存中的數據刷到磁盤上,如果意外停機,在數據庫重新啟動時,MongoDB 通過Journaling日誌功能恢復。MongoDB 復制集 Replset (冗余)
MongoDB 支持自動分片 Sharding(擴展)
分片功能:實現海量數據的分布式存儲 分片通常與復制集配合起來使用,實現讀寫分離、負載均衡,常用命令:
mongod 啟動數據庫實例,負責數據庫創建、刪除等各項管理工作,運行在服務器端為客戶端提供監聽。 mongo 進入交互模式對數據庫系統進行管理。 mongodumpMongoDB 適合的業務
Web應用程序 緩存系統 日誌分析系統MongoDB 介紹