MongoDB管理與開發精要

MongoDB管理與開發精要

《MongoDB管理與開發精要》是紅丸編著,機械工業出版社出版的圖書。

基本介紹

  • 書名:MongoDB管理與開發精要
  • 作者紅丸
  • ISBN:9787111364795 
  • 出版社機械工業出版社
  • 出版時間:2012-1-1
  • 裝幀:平裝
  • 版次:1
  • 印刷時間:2012-1-1
  • 紙張:膠版紙
  • 印次:1
圖書摘要,圖書特色,作者簡介,前言,勘誤和支持,目錄,

圖書摘要

全書共分為六個部分:基礎篇首先介紹了MongoDB的功能特點和實用場合,然後講解了MongoDB的基本使用和操作;
高級篇詳細講解了MongoDB的高級查詢、高級更新和高級特性;管理篇講解了各種常用的管理工具、管理命令和訪問控制;性能篇講解了索引最佳化和性能監控;架構篇講解了Replica Sets複製集、Sharding分片以及二者的結合;開發篇講解了MongoDB的C#開發接口和Java開發接口。

圖書特色

最初,本書的部分初稿在幾大IT技術社區“瘋傳”,被社區網友視為學習MongoDB的“寶典”。由於受到社區網友的熱捧,在初稿的基礎上,作者對本書內容進行了系統化的補充,使原有的內容獲得了大大的完善。本書的第一大特點是實用性和可操作性強,作者是國內MongoDB領域的先驅和實踐者,本書的所有內容都來自於作者的實踐;本書的第二大特點是內容深入且全面,從MongoDB的使用、管理、維護、性能最佳化,到MongoDB的開發和實現原理,幾乎涵蓋了讀者需要掌握的所有內容。強烈推薦!
—— 51CTO
MongoDB是非關係型資料庫中功能最豐富、最像關係型資料庫的產品之一,因為具有高性能、易於部署、易於使用、存儲數據方便等優勢而深受歡迎。它最大的特點是支持的查詢語言非常強大。從本書的內容可以看出,作者在MongoDB方面有非常多的實踐經驗,而且對MongoDB有非常深入的理解和認識,本書從實踐的角度對MongoDB的方方面面做了透徹的講解,有很大的參考價值。極力推薦!
—— 中國DBA超級論壇
隨著網際網路的發展和新技術的不斷湧現,企業會在實際的套用中使用各種不同的方案和產品來存放數據。由C++語言編寫的MongoDB是一個基於分散式檔案存儲的資料庫,能夠為Web套用提供可擴展的高性能數據存儲解決方案。它是一個介於關係資料庫和非關係資料庫之間的NoSQL產品,具有幾乎所有關係型資料庫的功能。它會使你的開發和部署很容易,天然具有分散式和Failover的功能,深客群多公司喜愛。本書實戰性較強,涵蓋MongoDB的各個方面,作者通過大量實例講解了如何使用MongoDB,以及如何解決在使用過程中遇到的各種問題。
——楊海朝 新浪網(中國)技術有限公司首席DBA/新浪微博資料庫負責人
MongoDB是一個開源、高性能、面向集合存儲的分散式文檔存儲資料庫。著名的線上詞典和語言庫網站Wordnik大量使用了MongoDB對其數據進行存儲。而令我印象最深的是,MongoDB使用作業系統的記憶體映射檔案方式來管理記憶體,以此來簡化記憶體的管理工作,同時提高了Cache的性能。本書作者多年從事一線的MongoDB管理與開發,相信通過他的介紹,不論是未曾接觸過MongoDB的用戶,抑或是已經在實際工作中使用MongoDB的用戶,都會受益匪淺。
——姜承堯 資深MySQL資料庫專家,著有《MySQL技術內幕:InnoDB存儲引擎》
MongoDB在Key-Value存儲方式和傳統的關係型資料庫系統之間架起了一座橋樑,集兩者的優勢於一身。對於正在開發創新型網際網路套用的公司來說,非常適合使用MongoDB,因為它能大大提高產品的開發速度,使企業滿足用戶迅速變化的需求。在國外,Disney、SAP、Forbes、SourceForge和GitHub等知名公司都採用了MongoDB作為其數據存儲方案;在國內,百度、新浪、淘寶、盛大、視覺中國、大眾點評網和又拍網等眾多知名網際網路公司也在套用MongoDB。
雖然MongoDB這一“野心勃勃”的NoSQL新貴讓很多初學者望而卻步,但是通過本書你會發現,MongoDB的學習也可以如此輕鬆。本書沒有教條式地去深究MongoDB的語法細節,也沒有重點地介紹各種高深的MongoDB編程技巧,而是本著簡單實用的原則,通俗易懂地講解了MongoDB中最重要、最實用的知識。
本書強調動手實戰,以風趣幽默的語言和一系列生動的實戰案例系統地講解了MongoDB的核心技術和擴展技術。在遵循技術嚴密性的同時,還在容易產生錯誤、不易理解的知識點上配備了翔實且又具有說服力的開發情景截圖,循序漸進、深入淺出。只要大家結合書中的案例親自動手實驗,一定能快速掌握MongoDB知識,從而獨立完成日常運行、維護、管理和程式開發工作。

作者簡介

“紅丸”,資深資料庫專家,國內MongoDB領域的先驅之一,積累了豐富的實戰經驗。精通MySQL、SQL Server和DB2等大中型資料庫的運維和管理,還擅長Java和C#等技術。此外,他對Redis和分散式計算技術也有一定的研究。活躍於ITPUB等技術社區,發表和分享了大量關於MongoDB和Redis的技術文章,深受社區歡迎。

前言

為什麼要寫這本書
2005年我開始從事J2EE(現在叫Java EE)開發,一年以後正式將精力放在資料庫領域,並於當年正式成為DBA(資料庫管理員),此後一直從事資料庫的管理工作。從DB2 V8到DB2 V9,從SQL Server 2000到SQL Server 2008,從MySQL到MongoDB,6年的時間奮鬥在DBA這個領域,至今我依然深愛著這個職業。在以往的日子裡,每當遇到疑難問題時,我總是非常耐心地去處理,並享受著解決問題帶來的喜悅。
2010年,隨著Web 2.0網站的大批湧現,NoSQL資料庫逐漸流行起來。與傳統的關係型資料庫相比,NoSQL資料庫具有操作簡單、完全免費、源碼公開、隨時下載等特點,並可以用於各種商業目的。這使NoSQL資料庫產品廣泛套用於各種大型入口網站和專業網站,大大降低了企業運營成本。同時,NoSQL資料庫對傳統的關係型資料庫造成了一定的衝擊,例如,開源資料庫代表MySQL已經將Memcached產品嵌入其解決方案中,與此同時,各種商業資料庫也在不斷推出列式數據處理方案來彌補自身的不足。由此可見,NoSQL的良好發展態勢已經是不可逆轉的了,它必將主宰未來的網際網路資料庫市場。MongoDB正是這些NoSQL產品中的傑出代表。
在這種背景下,2010年,機械工業出版社華章公司的楊福川準備籌劃一本關於MongoDB實戰方面的書,我正好樂意與大家一起分享我多年工作實踐的積累以及資料庫開發、最佳化、管理和維護經驗,於是我們一拍即合。
此後,我開始蟄伏在北京的某個角落,從日出東方到夕陽西下,經歷了不知多少個日日夜夜。看過漫天塵土的春季,浸泡在炎熱的夏季,走過落葉紛飛的秋季,不知不覺進入了冬季。漫漫長路,本書終於塵埃落定。
本書全面介紹了MongoDB資料庫,重在實戰演練,學習思路也是我親身的學習經歷。出於嚴謹的考慮,本書中的例子都在測試環境上調試通過。這耗費了我大量的時間和精力,但是,如果能夠幫助讀者以最快的速度掌握一門技術,一切努力都是值得的。
讀者對象
全書內容循序漸進、由淺入深,既可以引導初學者入門,又可以幫助具備一定基礎的IT技術從業人員進一步提高技術水平,力求不同層次的讀者都能從本書中受益。本書的讀者對象包括:
q 準備擴展MongoDB知識的開發人員
q 有興趣了解MongoDB的DBA或資料庫應用程式編程人員
q 正在學習資料庫課程的計算機相關專業的學生
q 想使用MongoDB實現快速查詢的技術人員
q 想進一步了解MongoDB的“發燒友”
q 資料庫管理層和技術決策者
本書特點
本書針對IT技術人員在工作中的必備知識與技能,精心安排了篇章結構。本書從基礎入手,通過細緻入微的內容組織,配以深入淺出的文字論述,以實際項目套用為背景,力圖讓讀者從多個角度對MongoDB有深入的認識和理解。
本書最大的特點是實戰性強,利用豐富的實例對MongoDB進行了詳細的介紹。
本書系統全面,涵蓋了MongoDB開發、最佳化、管理和維護的方方面面。從寫作風格上看,本書沒有過多討論抽象的理論,而是通過豐富的實例來幫助讀者理解套用MongoDB資料庫時會遇到的各種問題及其解決方法,使讀者能夠很輕鬆地部署測試環境,並且熟練地掌握MongoDB資料庫的各種使用技巧。
如何閱讀本書
本書主要以引導讀者思考、體會和實踐為目的,通過實例讓讀者以最快的速度全面接觸MongoDB。在閱讀本書的時候,最好有一個可以實踐的MongoDB測試環境,通過自己動手實踐來加深認識、真正理解。對於管理層和技術決策者來說,可能沒有太多時間進行大量的測試和實踐,學習解決問題的思路就可以了。
本書分為6個部分,共15章:
第一部分 基礎篇(第1章~第2章):主要講解MongoDB的基礎理論和基本操作。通過這部分內容的學習,讀者可以對MongoDB進行簡單操作。
第二部分 高級篇(第3章~第5章):主要講解MongoDB的高級技術,例如高級查詢、高級更新、高級功能的套用。通過這部分內容的學習,讀者可以熟練地套用MongoDB來完成日常的業務需求。
第三部分 管理篇(第6章~第8章):主要講解MongoDB常用的運行和維護管理工具,例如數據的導入導出、數據的備份和恢復、數據的克隆和複製,以及與安全相關的實用技術。通過這部分內容的學習,讀者應該具備一個MongoDB DBA所具有的全部技能。
第四部分 性能篇(第9章~第10章):主要講解MongoDB的索引、最佳化、性能監控技術。通過這部分內容的學習,讀者可以具備MongoDB調優的能力。
第五部分 架構篇(第11章~第13章):主要講解MongoDB的高可用架構的細節,如主從複製、Sharding(分片)等。通過這部分內容的學習,讀者可以獨立設計MongoDB套用系統架構。
第六部分 開發篇(第14章~第15章):主要講解如何用C#和Java來操作MongoDB資料庫。通過這部分內容的學習,讀者可以將C#或Java開發技術與MongoDB資料庫結合起來,完成特定套用系統的開發。

勘誤和支持

由於作者的水平有限,編寫時間倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。讀者可以將書中的錯誤或者學習本書時遇到的問題傳送到ChinaDBA(中國DBA超級論壇),我將儘量提供最滿意的解答,期待得到你們的真摯反饋。

目錄

前言
第一部分  基  礎  篇
第1章  認識MongoDB / 2
1.1  NoSQL簡介 / 2
1.1.1  產生背景 / 2
1.1.2  NoSQL的種類及其特性 / 4
1.1.3  NoSQL特點 / 8
1.1.4  發展現狀 / 8
1.2  初識MongoDB / 9
1.2.1  特點及功能 / 10
1.2.2  適用場合 / 11
1.3  MongoDB實際套用案例 / 12
1.3.1  國內案例 / 12
1.3.2  國外案例 / 12
1.4  本章小結 / 13
第2章  快速入門 / 14
2.1  體系結構 / 14
2.1.1  數據邏輯結構 / 14
2.1.2  數據存儲結構 / 15
2.1.3  日誌系統 / 17
2.1.4  元數據的存儲 / 18
2.1.5  數據類型 / 19
2.2  MongoDB的安裝和配置 / 22
2.2.1  在Windows平台下的安裝和配置 / 22
2.2.2  在Linux平台下的安裝和配置 / 23
2.3  啟動資料庫 / 25
2.3.1  命令行方式 / 25
2.3.2  配置檔案方式 / 25
2.3.3  Daemon方式 / 26
2.3.4  mongod參數方式 / 26
2.4  停止資料庫 / 27
2.4.1  Ctrl+C組合鍵 / 27
2.4.2  shutdownServer()指令 / 28
2.4.3  UNIX系統指令 / 28
2.5  運算元據庫 / 29
2.5.1  連線資料庫 / 29
2.5.2  插入記錄 / 29
2.5.3  查詢記錄 / 31
2.5.4  修改記錄 / 34
2.5.5  刪除記錄 / 34
2.6  常用GUI管理工具 / 34
2.6.1  MongoVUE / 34
2.6.2  RockMongo / 35
2.6.3  MongoHub / 36
2.7  本章小結 / 37
第二部分  高  級  篇
第3章  高級查詢 / 40
3.1  查詢操作符 / 40
3.2  查詢語法 / 46
3.2.1  數組內容的查詢 / 47
3.2.2  內嵌文檔的查詢 / 47
3.2.3  正則表達式匹配 / 48
3.2.4  $where查詢 / 48
3.3  聯合查詢 / 49
3.3.1  簡單手工關聯 / 49
3.3.2  DBRef方式關聯 / 50
3.4  游標和存儲過程 / 51
3.4.1  游標 / 51
3.4.2  存儲過程 / 52
3.5  本章小結 / 53
第4章  高級更新 / 55
4.1  數據更新命令詳解 / 55
4.1.1  update命令 / 55
4.1.2  save命令 / 56
4.2  數據更新操作符 / 57
4.3  本章小結 / 62
第5章  高級特性 / 63
5.1  Capped Collection集合 / 63
5.1.1  創建Capped Collection / 63
5.1.2  Capped Collection的用途 / 64
5.1.3  注意事項 / 64
5.2  GridFS規範 / 65
5.2.1  如何實現海量存儲 / 65
5.2.2  命令行工具 / 66
5.3  MapReduce編程模型 / 68
5.3.1  Map進行分組 / 69
5.3.2  Reduce聚合計算 / 69
5.3.3  Result獲取結果 / 70
5.3.4  Finalize格式化輸出 / 70
5.3.5  Options定製輸出 / 71
5.4  本章小結 / 72
第三部分  管  理  篇
第6章  管理工具集 / 74
6.1  數據遷移 / 74
6.1.1  導出工具mongoexport / 75
6.1.2  導出工具mongodump / 78
6.1.3  導入工具mongoimport / 79
6.2  數據的備份和恢復 / 81
6.2.1  備份工具mongodump / 81
6.2.2  恢復工具mongorestore / 84
6.3  命令行操作 / 86
6.3.1  通過eval參數執行指定語句 / 86
6.3.2  執行指定檔案中的內容 / 87
6.4  本章小結 / 88
第7章  管理命令 / 89
7.1  克隆collection / 90
7.1.1  遠程克隆collection / 90
7.1.2  本地克隆collection / 94
7.2  複製資料庫 / 94
7.2.1  遠程複製資料庫 / 94
7.2.2  本地複製資料庫 / 96
7.3  刷新磁碟 / 97
7.4  捕獲異常 / 98
7.4.1  返回異常信息 / 98
7.4.2  阻塞客戶端 / 99
7.5  進程控制 / 99
7.5.1  查看活動進程 / 99
7.5.2  結束進程 / 100
7.6  驗證collection的有效性 / 100
7.7  數據壓縮 / 101
7.8  本章小結 / 102
第8章  訪問控制 / 103
8.1  限制特定IP位址訪問 / 104
8.2  設定監聽連線埠 / 104
8.3  使用用戶名和口令登錄 / 105
8.3.1  建立系統root用戶 / 107
8.3.2  建立指定許可權用戶 / 108
8.3.3  刪除指定用戶 / 109
8.4  本章小結 / 110
第四部分  性  能  篇
第9章  索引及最佳化 / 112
9.1  MongoDB索引概述 / 112
9.2  索引操作 / 113
9.2.1  基礎索引 / 113
9.2.2  靜默方式創建索引 / 115
9.2.3  文檔索引 / 115
9.2.4  組合索引 / 116
9.2.5  唯一索引 / 116
9.2.6  強制使用索引 / 117
9.2.7  刪除索引 / 119
9.2.8   重建索引 / 119
9.2.9  explain查看執行計畫 / 119
9.3  最佳化器Profiler / 121
9.3.1  開啟Profiler功能 / 121
9.3.2  查詢Profiler記錄 / 122
9.4  性能最佳化概述 / 123
9.4.1  性能最佳化的原則 / 123
9.4.2  影響性能的因素 / 124
9.5  常用的最佳化方案 / 124
9.5.1  創建索引 / 124
9.5.2  限定返回結果條數 / 125
9.5.3  只查詢用到的欄位 / 125
9.5.4  採用Capped Collection / 126
9.5.5  採用Server Side Code Execution命令集 / 126
9.5.6  使用hint / 127
9.5.7  採用Profiler / 127
9.6  本章小結 / 128
第10章  性能監控 / 129
10.1  mongosniff工具 / 129
10.2  mongostat工具 / 131
10.3  db.serverStatus命令 / 132
10.4  db.stats命令 / 134
10.5  HTTP監控接口 / 135
10.6  本章小結 / 136
第五部分  架  構  篇
第11章  複製集 / 138
11.1  Replica Sets架構 / 138
11.2  部署Replica Sets / 139
11.3  主從操作日誌 / 144
11.4  主從配置信息 / 146
11.5  管理Replica Sets / 147
11.5.1  主從切換 / 147
11.5.2  讀寫分離 / 149
11.5.3  故障轉移 / 151
11.5.4  增減節點 / 153
11.6  本章小結 / 160
第12章  分片 / 161
12.1  Sharding簡介 / 161
12.1.1  Sharding的特點 / 161
12.1.2  Sharding架構 / 162
12.2  構建一個簡單的Sharding Cluster / 163
12.2.1  啟動Shard Server / 163
12.2.2  啟動Config Server / 164
12.2.3  啟動Route Process / 164
12.2.4  配置Sharding / 164
12.2.5  驗證Sharding / 165
12.3  維護Sharding / 167
12.3.1  列出所有的Shard Server / 168
12.3.2  查看Sharding信息 / 168
12.3.3  判斷是否是Sharding / 169
12.3.4  對現有的表執行Sharding / 169
12.3.5  新增Shard Server / 171
12.3.6  移除Shard Server / 172
12.4  本章小結 / 175
第13章  Replica Sets + Sharding方案 / 176
13.1  Replica Sets+Sharding架構 / 176
13.2  搭建一個高可用架構 / 177
13.2.1  創建數據目錄 / 177
13.2.2  配置Replica Sets / 178
13.2.3  配置3台Config Server / 181
13.2.4  配置3台Route Process / 181
13.2.5  配置Shard Cluster / 181
13.2.6  驗證Sharding / 182
13.3  本章小結 / 183
第六部分  開  發  篇
第14章  C#開發接口 / 186
14.1  C#快速入門 / 186
14.1.1  下載驅動和開發環境 / 186
14.1.2  訪問控制 / 188
14.1.3  C#對資料庫的基礎操作 / 189
14.2  C#驅動一致性 / 194
14.3  C#常用操作 / 195
14.3.1  對MongoDB實例的操作 / 195
14.3.2  對用戶的操作 / 198
14.3.3  對collection的操作 / 202
14.3.4  對索引的操作 / 208
14.4  C#高級查詢 / 211
14.4.1  判斷列名是否存在 / 211
14.4.2  比較運算符 / 213
14.4.3  邏輯運算符 / 221
14.4.4  正則表達式查詢 / 223
14.4.5  跳過查詢 / 224
14.5  用C#操作GridFS / 225
14.5.1  插入數據 / 225
14.5.2  查詢數據 / 226
14.5.3  讀取並保存數據 / 227
14.5.4  刪除數據 / 228
14.6  本章小結 / 229
第15章  Java開發接口 / 230
15.1  Java快速入門 / 230
15.1.1  下載驅動和開發環境 / 230
15.1.2  訪問控制 / 232
15.1.3  Java對資料庫的基礎操作 / 233
15.2  Java驅動一致性 / 237
15.3  Java常用操作 / 238
15.3.1  對MongoDB實例的操作 / 238
15.3.2  對用戶的操作 / 241
15.3.3  對collection的操作 / 243
15.3.4  對索引的操作 / 250
15.4  Java高級查詢 / 253
15.4.1  通過游標獲取所有document / 253
15.4.2  比較運算符 / 254
15.4.3  邏輯運算符 / 263
15.4.4  正則表達式查詢 / 264
15.4.5  跳過查詢 / 265
15.5  用Java操作GridFS / 266
15.5.1  插入數據 / 266
15.5.2  查詢數據 / 267
15.5.3  讀取並保存數據 / 268
15.5.4  刪除數據 / 269
15.6  本章小結 / 270

相關詞條

熱門詞條

聯絡我們