《精通MongoDB 3.x》是2019年9月清華大學出版社出版的圖書,作者是[美]亞歷克斯·吉瑪斯。
基本介紹
- 書名:精通MongoDB 3.x
- 作者:[美]亞歷克斯·吉瑪斯
- 譯者:陳凱
- 出版社:清華大學出版社
- 出版時間:2019年09月1日
- 定價:89 元
- ISBN:9787302532989
內容簡介,圖書目錄,
內容簡介
本書詳細闡述了與MongoDB 3.x 相關的基本解決方案,主要包括MongoDB —現代Web 資料庫,模式設計和數據建模,MongoDB CRUD 操作,高級查詢,聚合,索引,監控、備份和安全性,存儲引擎,通過MongoDB 利用大數據,複製,分片,容錯和高可用性等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。本書既適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。
圖書目錄
第1 章 MongoDB—現代Web 資料庫 . 1
1.1 Web 的歷史 1
1.1.1 Web 1.0 1
1.1.2 Web 2.0 3
1.1.3 Web 3.0 5
1.2 SQL 和NoSQL 的演變 .5
1.2.1 MongoDB 的演變 .6
1.2.2 MongoDB 和SQL 開發人員 8
1.2.3 MongoDB 和NoSQL 開發人員 .10
1.3 MongoDB 的主要特徵和用例 10
1.3.1 主要特徵 .10
1.3.2 MongoDB 的用例 .11
1.3.3 對MongoDB 的批評 13
1.4 MongoDB 配置和最佳實踐 14
1.4.1 操作最佳實踐 .14
1.4.2 模式設計最佳實踐 .16
1.4.3 寫入持久性的最佳實踐 .17
1.4.4 複製的最佳實踐 .18
1.4.5 分片的最佳實踐 .18
1.4.6 安全性的最佳實踐 .19
1.4.7 AWS 的最佳實踐 19
1.5 參考資料 20
1.5.1 MongoDB 幫助文檔 .20
1.5.2 進一步閱讀 .20
1.6 小結 21
第2 章 模式設計和數據建模 . 23
2.1 關係模式設計 24
? X ? 精通MongoDB 3.x
2.1.1 MongoDB 模式設計 .24
2.1.2 數據建模 .25
2.1.3 為原子操作建模數據 .29
2.1.4 關係建模 .31
2.1.5 連線到MongoDB .35
2.1.6 使用Python 連線 39
2.1.7 使用PHP 連線 42
2.2 小結 46
第3 章 MongoDB CRUD 操作 . 47
3.1 使用shell 執行CRUD 操作 .47
3.1.1 使用mongo shell 腳本 49
3.1.2 管理 .54
3.1.3 mongo shell 中的MapReduce 57
3.1.4 聚合框架 .62
3.1.5 保護shell 的安全 64
3.1.6 使用MongoDB 進行身份驗證 68
3.2 小結 69
第4 章 高級查詢 . 71
4.1 MongoDB CRUD 操作 71
4.1.1 使用Ruby 驅動程式執行CRUD 操作 71
4.1.2 在Mongoid 中的CRUD 操作 78
4.1.3 使用Python 驅動程式執行CRUD 操作 .79
4.1.4 使用PyMODM 執行CRUD 操作 .84
4.1.5 使用PHP 驅動程式執行CRUD 操作 .86
4.1.6 使用Doctrine 執行CRUD 操作 92
4.1.7 比較操作符 .96
4.1.8 更新操作符 .97
4.1.9 智慧型查詢 .97
4.2 小結 101
第5 章 聚合 103
5.1 聚合的用途 103
5.2 聚合操作符 104
目 錄? XI ?
5.2.1 聚合階段操作符 .104
5.2.2 表達式操作符 .105
5.3 限制 110
5.4 聚合用例 111
5.5 小結 122
第6 章 索引 123
6.1 內部索引 123
6.2 索引類型 125
6.2.1 單欄位索引 .125
6.2.2 複合索引 .127
6.2.3 多鍵索引 .129
6.2.4 特殊類型的索引 .132
6.3 建立和管理索引 140
6.3.1 強制使用索引 .140
6.3.2 管理索引 .143
6.4 高效使用索引 144
6.5 參考資料 146
6.6 小結 147
第7 章 監控、備份和安全性 . 149
7.1 監控 149
7.1.1 應該監控的重點內容 .149
7.1.2 監控WiredTiger 中的記憶體使用情況 .151
7.1.3 跟蹤頁面錯誤 .151
7.1.4 跟蹤B 樹未命中的情況 .152
7.1.5 工作集計算 .154
7.1.6 監控工具 .154
7.2 備份 155
7.2.1 備份選項 .156
7.2.2 EC2 備份和還原 .159
7.2.3 增量備份 .159
7.3 安全性 160
7.3.1 身份驗證 .160
? XII ? 精通MongoDB 3.x
7.3.2 授權機制 .162
7.3.3 網路級安全性 .166
7.3.4 審計安全性 .166
7.3.5 特別案例 .167
7.3.6 綜述 .167
7.4 小結 168
第8 章 存儲引擎 . 169
8.1 可插拔存儲引擎 169
8.1.1 WiredTiger .169
8.1.2 加密 .175
8.1.3 使用In-Memory 存儲 .176
8.1.4 MMAPv1 .177
8.1.5 混合使用存儲引擎 .179
8.1.6 其他存儲引擎 .180
8.2 MongoDB 中的鎖 180
8.2.1 鎖的報告 .183
8.2.2 鎖的產生 .183
8.2.3 常用命令和鎖 .184
8.2.4 需要資料庫鎖的命令 .184
8.3 參考資料 185
8.4 小結 186
第9 章 通過MongoDB 利用大數據 187
9.1 關於大數據 187
9.1.1 大數據發展前景 .188
9.1.2 訊息排隊系統 .189
9.1.3 數據倉庫 .191
9.1.4 以MongoDB 作為數據倉庫 193
9.2 大據用例 194
9.2.1 Kafka 設定 .195
9.2.2 Hadoop 設定 198
9.2.3 從Hadoop 到MongoDB 管道 201
9.2.4 從Spark 到MongoDB 201
目 錄? XIII ?
9.3 參考資料 202
9.4 小結 203
第10 章 複製 205
10.1 複製 205
10.1.1 邏輯或物理複製 .205
10.1.2 不同的高可用性類型 .206
10.2 架構概述 207
10.3 選舉方式 208
10.4 關於副本集的用例 210
10.5 設定副本集 211
10.5.1 將獨立伺服器轉換為副本集 .211
10.5.2 創建副本集 .212
10.5.3 讀取首選項設定 .214
10.5.4 寫入關注 .215
10.5.5 副本集成員的優先權設定 .216
10.6 連線到副本集 220
10.7 副本集管理 222
10.7.1 對副本集執行維護的方式 .222
10.7.2 重新同步副本集的成員 .223
10.7.3 更改oplog 大小 223
10.7.4 在丟失了大部分伺服器時重新配置副本集 .224
10.7.5 鏈式複製 .225
10.8 副本集的雲選項 225
10.8.1 mLab 226
10.8.2 MongoDB Atlas .226
10.9 副本集的限制 226
10.10 小結 227
第11 章 分片 229
11.1 分片的優點 229
11.2 架構概述 231
11.2.1 開發、持續部署和暫存環境 .232
11.2.2 提前計畫分片 .233
? XIV ? 精通MongoDB 3.x
11.3 分片設定 233
11.3.1 選擇分片鍵 .233
11.3.2 選擇正確的分片鍵 .234
11.4 分片管理和監控 237
11.4.1 跟蹤和保持數據平衡 .237
11.4.2 塊的管理 .240
11.4.3 分片限制 .247
11.5 查詢分片數據 248
11.5.1 查詢路由器 .248
11.5.2 使用Ruby 查詢 .250
11.5.3 與副本集的性能比較 .250
11.6 分片的恢復 251
11.6.1 mongos .251
11.6.2 mongod 進程 .251
11.6.3 配置伺服器 .252
11.6.4 分片崩潰 .252
11.6.5 整個集群都崩潰了 .252
11.7 參考資料 252
11.8 小結 253
第12 章 容錯和高可用性 255
12.1 應用程式設計 255
12.1.1 無模式並不意味著沒有模式設計 .255
12.1.2 讀取性能最佳化 .256
12.1.3 防禦性編碼 .258
12.2 操作 259
12.3 安全性 260
12.3.1 默認啟用安全性 .260
12.3.2 隔離伺服器 .261
12.3.3 對照檢查表 .262
12.4 參考資料 263
12.5 小結 264