1. 程式人生 > >MongoDB 介紹

MongoDB 介紹

交互模式 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的接口,與其它第三方數據分析工具完美結合。
關系型數據庫(MySQL) MongoDB
database database
table collection
row document/object
SQL數據庫 NoSQL數據庫
實時一致性 簡單便捷
事務 方便擴展
多表聯合查詢 更好的性能

基本單元:

關系數據庫---行 MongoDB --document(用於JSON格式類似的鍵值對來存儲,MongoDB叫BSON對象)

MongoDB 日誌功能 Journaling

對數據庫的增、刪、改 操作會記錄在日誌文件中。每100ms將內存中的數據刷到磁盤上,如果意外停機,在數據庫重新啟動時,MongoDB 通過Journaling日誌功能恢復。

MongoDB 復制集 Replset (冗余)

一個復制集在生產環境中最少需要3臺獨立機器,主節點(primary),次節點(secondary),仲裁節點(只負責選出主節點) 支持 備份、自動故障轉移,

MongoDB 支持自動分片 Sharding(擴展)

分片功能:實現海量數據的分布式存儲 分片通常與復制集配合起來使用,實現讀寫分離、負載均衡,

常用命令:

mongod 啟動數據庫實例,負責數據庫創建、刪除等各項管理工作,運行在服務器端為客戶端提供監聽。 mongo 進入交互模式對數據庫系統進行管理。 mongodump
創建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

MongoDB 適合的業務

Web應用程序 緩存系統 日誌分析系統

MongoDB 介紹