MongoDB基礎、運維與性能優化
王金柱
商品描述
"MongoDB數據庫與傳統的關系數據庫不同,是一種面向文檔的、介於非關系數據庫和關系數據庫之間的數據庫。《MongoDB基礎、運維與性能優化》幫助讀者掌握MongoDB 8數據庫及其相關技術棧的開發知識,涵蓋MongoDB 8數據庫應用開發的要點。《MongoDB基礎、運維與性能優化》配套PPT課件。 《MongoDB基礎、運維與性能優化》共分15章,內容包括MongoDB數據庫基礎知識、系統安裝與環境搭建、可視化工具的使用、Shell工具的使用、基礎操作、聚合、數據模型、時間序列、事務、索引、副本集、分片、存儲、安全以及性能優化。 《MongoDB基礎、運維與性能優化》內容翔實、代碼精練、重點突出、實例豐富,能夠幫助初學者快速掌握MongoDB數據庫運維和開發方法,對提高Web應用開發人員的技術水平也有非常積極的指導作用。《MongoDB基礎、運維與性能優化》也適用於高等院校或高職高專院校學習MongoDB相關課程的學生。"
目錄大綱
目 錄
第1章 MongoDB簡介 1
1.1 MongoDB概述 1
1.2 MongoDB的發展歷史 4
1.3 MongoDB的優缺點 8
1.3.1 MongoDB的優點 8
1.3.2 MongoDB的缺點 9
1.4 常用概念 10
1.5 數據類型 11
1.6 本章小結 12
第2章 MongoDB的安裝 13
2.1 在Windows系統上安裝MongoDB 13
2.1.1 安裝MongoDB 13
2.1.2 配置環境變量 20
2.1.3 其他安裝形式 21
2.1.4 常見問題和註意事項 21
2.2 在Linux系統上安裝MongoDB 22
2.2.1 使用yum方式安裝MongoDB 22
2.2.2 卸載MongoDB 25
2.2.3 使用其他方式安裝MongoDB 26
2.2.4 常見錯誤和註意事項 27
2.3 本章小結 27
第3章 MongoDB可視化管理工具 28
3.1 MongoDB Compass 28
3.1.1 MongoDB Compass的特點 28
3.1.2 MongoDB Compass的安裝與更新 29
3.1.3 MongoDB Compass的使用 30
3.1.4 註意事項 33
3.2 Navicat Premium 33
3.2.1 Navicat Premium的功能特點 34
3.2.2 Navicat Premium的安裝 35
3.2.3 Navicat Premium的使用 37
3.3 NoSQLBooster for MongoDB 40
3.3.1 NoSQLBooster for MongoDB的功能特點及使用場景 40
3.3.2 NoSQLBooster for MongoDB的安裝 41
3.3.3 NoSQLBooster for MongoDB的使用 42
3.4 本章小結 48
第4章 MongoDB Shell(mongosh) 49
4.1 MongoDB Shell的安裝 49
4.1.1 在Windows系統上安裝MongoDB Shell 50
4.1.2 在Linux系統上安裝MongoDB Shell 52
4.2 MongoDB Shell的配置 53
4.2.1 使用命令編輯器 53
4.2.2 配置設置 54
4.2.3 自定義mongosh提示 56
4.2.4 配置遠程數據搜集 58
4.3 MongoDB Shell的運行命令 58
4.4 使用MongoDB Shell進行簡單操作 59
4.4.1 新增 60
4.4.2 查詢 61
4.4.3 修改 63
4.4.4 刪除 66
4.5 客戶端字段級加密 67
4.6 腳本 69
4.6.1 運行JavaScript腳本 69
4.6.2 運行配置文件中的代碼 71
4.7 本章小結 73
第5章 數據庫操作 74
5.1 基礎操作 74
5.1.1 操作數據庫 74
5.1.2 操作集合或視圖 78
5.1.3 操作文檔 86
5.2 文本搜索 86
5.3 地理空間查詢 88
5.3.1 GeoJSON對象 88
5.3.2 傳統坐標對 89
5.3.3 2dsphere索引 89
5.3.4 2d索引 95
5.4 常用的操作符 97
5.4.1 查詢和投影操作符 97
5.4.2 更新操作符 100
5.4.3 聚合管道操作符 102
5.4.4 查詢修飾符 103
5.5 本章小結 104
第6章 聚合 105
6.1 聚合方法 105
6.2 聚合管道 106
6.2.1 管道和階段 107
6.2.2 管道操作符 107
6.2.3 管道表達式與表達式操作符 108
6.2.4 聚合操作 117
6.3 本章小結 124
第7章 數據模型 125
7.1 數據建模介紹 125
7.2 架構設計流程 126
7.2.1 確定工作負載 126
7.2.2 映射模式關系 127
7.2.3 應用設計模式 128
7.3 模型設計模式 130
7.3.1 分組數據 130
7.3.2 文檔和模式版本控制 136
7.4 數據一致性 143
7.4.1 用例描述 143
7.4.2 強制執行事務的數據一致性 144
7.4.3 通過嵌入實現數據一致性 146
7.5 模式驗證 148
7.5.1 模式驗證使用場景 148
7.5.2 指定JSON schema驗證 149
7.5.3 指定允許的字段值 151
7.5.4 使用查詢運算符指定驗證 152
7.5.5 指定現有文檔的驗證級別 153
7.5.5 指定現有文檔的驗證級別 156
7.5.6 選擇如何處理無效文檔 159
7.6 本章小結 161
第8章 時間序列 162
8.1 時間序列介紹 162
8.2 創建和查詢時間序列集合 163
8.2.1 創建時間序列集合 163
8.2.2 在時間序列集合中插入測量值 164
8.2.3 查詢時間序列集合 165
8.2.4 在時間序列集合上運行聚合 165
8.3 列出數據庫中的時間序列集合 166
8.4 設置時間序列集合的自動刪除 167
8.5 設置時間序列數據的粒度 168
8.6 向時間序列集合添加從節點索引 170
8.6.1 創建二級索引 170
8.6.2 使用二級索引提高排序性能 171
8.6.3 時間序列集合的最新數據點查詢 172
8.7 本章小結 173
第9章 事務 174
9.1 事務基礎原理 174
9.2 驅動程序API 176
9.2.1 回調API 176
9.2.2 核心API 177
9.2.3 事務錯誤處理 178
9.3 事務與操作 180
9.3.1 事務操作基礎 180
9.3.2 在事務中創建集合和索引 180
9.3.3 計數、限制性與去重操作 181
9.4 讀取偏好與讀寫關註 181
9.4.1 事務和讀取偏好 181
9.4.2 事務和讀關註 182
9.4.3 事務和寫關註 182
9.5 本章小結 183
第10章 索引 184
10.1 索引介紹 184
10.2 創建索引 185
10.3 指定索引名稱 186
10.4 刪除索引 187
10.5 單字段索引 188
10.6 對嵌入式文檔創建索引 189
10.7 復合索引 190
10.7.1 復合索引介紹 190
10.7.2 創建復合索引 191
10.7.3 復合索引排序順序 192
10.8 多鍵索引 193
10.8.1 多鍵索引介紹 193
10.8.2 在數組字段上創建索引 195
10.8.3 為數組中的嵌入字段創建索引 196
10.8.4 多鍵索引邊界 198
10.8.5 多鍵索引的復合邊界 199
10.9 通配符索引 203
10.9.1 通配符索引介紹 203
10.9.2 對單個字段創建通配符索引 204
10.9.3 在通配符索引中包含或排除字段 205
10.9.4 對所有字段創建通配符索引 207
10.10 本章小結 209
第11章 副本集 210
11.1 副本集介紹 210
11.2 異步復制 212
11.3 自動故障轉移 212
11.4 讀取操作 213
11.4.1 讀取偏好 213
11.4.2 數據可見性 214
11.4.3 鏡像讀 214
11.5 操作日誌 215
11.5.1 操作日誌基礎 215
11.5.2 操作日誌大小 215
11.5.3 最短操作日誌保留期 216
11.5.4 可能需要更大操作日誌的工作負載 216
11.5.5 操作日誌狀態 217
11.6 本章小結 217
第12章 分片 218
12.1 分片基礎 218
12.1.1 分片介紹 218
12.1.2 分片鍵介紹 219
12.1.3 分片的優點 219
12.2 分片集群 220
12.2.1 分片集群的組成 220
12.2.2 生產配置 220
12.2.3 開發配置 221
12.3 分片鍵的應用 222
12.3.1 分片鍵索引 222
12.3.2 將集合分片 223
12.3.3 選擇分片鍵 223
12.3.4 更改分片鍵 226
12.3.5 對集合重新分片 226
12.4 本章小結 229
第13章 存儲 230
13.1 存儲介紹 230
13.2 WiredTiger存儲引擎 231
13.2.1 WiredTiger存儲引擎介紹 231
13.2.2 事務(讀寫)並發 231
13.2.3 文檔級並發性 231
13.2.4 快照和檢查點 232
13.2.5 日誌與壓縮 232
13.2.6 內存使用 233
13.3 日誌 233
13.3.1 日誌和WiredTiger存儲引擎 233
13.3.2 日誌記錄進程 234
13.3.3 Journal Files 234
13.3.4 日誌和內存存儲引擎 235
13.4 本章小結 235
第14章 安全性 236
14.1 安全性介紹 236
14.2 基於SCRAM的身份驗證 237
14.2.1 SCRAM機制 237
14.2.2 使用SCRAM對客戶端進行身份驗證 238
14.3 基於x.509的身份驗證 240
14.3.1 x.509機制 240
14.3.2 使用x.509對客戶端進行身份驗證 240
14.4 加密 242
14.4.1 加密方法 242
14.4.2 選擇正在使用的加密方法 242
14.4.3 靜態加密 243
14.4.4 TLS/SSL 244
14.5 本章小結 244
第15章 性能優化 245
15.1 性能優化概述 245
15.2 索引優化 246
15.3 查詢優化 247
15.4 資源管理優化 248
15.5 本章小結 248