注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)數(shù)據(jù)庫MongoDB核心原理與實踐

MongoDB核心原理與實踐

MongoDB核心原理與實踐

定 價:¥105.00

作 者: 郭遠(yuǎn)威
出版社: 電子工業(yè)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787121430008 出版時間: 2022-03-01 包裝: 平裝-膠訂
開本: 128開 頁數(shù): 404 字?jǐn)?shù):  

內(nèi)容簡介

  本書內(nèi)容按照循序漸進、由淺入深的原則組織編寫,共分為4篇,包括MongoDB基礎(chǔ)知識、深入理解MongoDB、MongoDB運維管理及MongoDB應(yīng)用實踐。第1篇主要介紹MongoDB的安裝部署與應(yīng)用場景、CRUD操作、索引、聚集操作等內(nèi)容,方便讀者快速動手學(xué)習(xí)實踐;第2篇系統(tǒng)且全面地介紹了底層核心存儲引擎,深入剖析了MongoDB復(fù)制集和分片集群的運行機制,以及分布式文件存儲GridFS,為讀者優(yōu)化數(shù)據(jù)庫性能和定位并解決故障問題打下堅實基礎(chǔ);第3篇主要介紹MongoDB的備份/恢復(fù)、系統(tǒng)監(jiān)控、權(quán)限控制等內(nèi)容,便于讀者開展日常數(shù)據(jù)庫管理和運維等工作;第4篇主要介紹基于MongoDB的應(yīng)用開發(fā)和典型案例,讀者可以直接參考其中的核心代碼和應(yīng)用實踐,將其運用到自己的實際項目中。

作者簡介

  郭遠(yuǎn)威,資深大數(shù)據(jù)架構(gòu)師,阿里云云計算ACP專家、MongoDB中文社區(qū)聯(lián)席主席&專欄作者,熱愛開源技術(shù),對新技術(shù)保持高度關(guān)注。具有多年與數(shù)據(jù)相關(guān)產(chǎn)品研發(fā)經(jīng)驗,曾帶領(lǐng)團隊開發(fā)云存儲平臺、內(nèi)存數(shù)據(jù)庫等產(chǎn)品;為Vodafone、中國移動、Afrimax等海內(nèi)外三十多個各級電信運營商的IT系統(tǒng)提供過咨詢、規(guī)劃、交付服務(wù)。著有《大數(shù)據(jù)存儲:MongoDB實戰(zhàn)指南》一書。

圖書目錄

目錄
第1篇 MongoDB基礎(chǔ)知識
第1章 初識MongoDB 2
1.1 MongoDB的發(fā)展與現(xiàn)狀 2
1.2 MongoDB與Hadoop比較 5
1.3 關(guān)鍵特性 8
1.4 安裝部署 10
1.4.1 在Windows中安裝MongoDB 11
1.4.2 在Linux中安裝MongoDB 11
1.4.3 在Docker中安裝MongoDB 13
1.5 幾個重要的可執(zhí)行文件 16
1.6 適合的業(yè)務(wù) 19
1.6.1 高并發(fā)Web應(yīng)用 19
1.6.2 實時計算類的應(yīng)用 20
1.6.3 數(shù)據(jù)中臺 20
1.6.4 游戲類應(yīng)用 21
1.6.5 日志分析類系統(tǒng) 22
1.6.6 AI應(yīng)用場景 22
1.7 小結(jié) 24
第2章 CRUD操作 25
2.1 查詢操作 25
2.1.1 查詢條件 27
2.1.2 比較操作符 28
2.1.3 邏輯操作符 30
2.1.4 字段名匹配 31
2.1.5 文本查詢 32
2.1.6 正則表達式 34
2.1.7 嵌套文檔查詢 34
2.1.8 數(shù)組查詢 35
2.1.9 地理位置查詢 38
2.1.10 查詢投射與排序 40
2.2 插入操作 41
2.2.1 insertOne 41
2.2.2 insertMany 42
2.2.3 insert 44
2.3 修改操作 45
2.3.1 updateOne 45
2.3.2 updateMany 48
2.3.3 replaceOne 52
2.3.4 update 53
2.4 刪除操作 55
2.4.1 deleteOne 55
2.4.2 deleteMany 55
2.5 批量寫操作 56
2.6 小結(jié) 58
第3章 索引 59
3.1 索引原理 59
3.2 創(chuàng)建索引 61
3.3 單個字段的索引 61
3.4 多字段的復(fù)合索引 63
3.5 數(shù)組的多鍵索引 65
3.6 查詢計劃分析 66
3.7 索引覆蓋查詢 70
3.8 全文索引 71
3.9 地理位置索引 72
3.10 Hash索引 73
3.11 刪除索引 73
3.12 TTL索引 74
3.13 小結(jié) 76
第4章 聚集操作 77
4.1 單個集合中的基礎(chǔ)聚集函數(shù) 77
4.1.1 count()函數(shù) 77
4.1.2 estimatedDocumentCount()函數(shù) 79
4.1.3 countDocuments()函數(shù) 80
4.1.4 distinct()函數(shù) 80
4.2 管道聚集框架 82
4.2.1 $group分組 84
4.2.2 $addFields添加新字段 85
4.2.3 $lookup關(guān)聯(lián)查詢 86
4.2.4 $project投射 88
4.2.5 $out將結(jié)果輸出到新集合 88
4.2.6 MongoDB聚集操作語句與SQL語句的比較 89
4.3 MapReduce編程 89
4.4 小結(jié) 92
第2篇 深入理解MongoDB
第5章 WiredTiger存儲引擎 94
5.1 存儲引擎的數(shù)據(jù)結(jié)構(gòu) 95
5.1.1 典型的B-Tree數(shù)據(jù)結(jié)構(gòu) 95
5.1.2 磁盤中的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu) 96
5.1.3 內(nèi)存中的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu) 97
5.1.4 page的其他數(shù)據(jù)結(jié)構(gòu) 99
5.2 page eviction頁面淘汰 100
5.3 page reconcile將數(shù)據(jù)寫入磁盤 101
5.4 Cache的分配規(guī)則 102
5.5 page的生命周期、狀態(tài)、大小 103
5.5.1 page的生命周期 104
5.5.2 page的各種狀態(tài) 105
5.5.3 page的大小參數(shù) 105
5.6 checkpoint的原理 107
5.6.1 checkpoint包含的關(guān)鍵信息 108
5.6.2 checkpoint執(zhí)行流程與觸發(fā)時機 109
5.7 wt工具和磁盤中的元數(shù)據(jù)文件 111
5.7.1 wt工具 111
5.7.2 元數(shù)據(jù)相關(guān)文件 112
5.8 事務(wù) 115
5.8.1 事務(wù)的基本原理 115
5.8.2 與事務(wù)相關(guān)的數(shù)據(jù)結(jié)構(gòu) 118
5.8.3 事務(wù)的snapshot隔離 119
5.8.4 MVCC并發(fā)控制機制 120
5.8.5 事務(wù)日志(Journal) 122
5.9 一個完整的寫操作流程 123
5.10 小結(jié) 124
第6章 復(fù)制集 125
6.1 復(fù)制集功能概述 125
6.2 復(fù)制集部署架構(gòu) 126
6.2.1 典型的3節(jié)點復(fù)制集部署架構(gòu) 126
6.2.2 多數(shù)據(jù)中心復(fù)制集部署架構(gòu) 128
6.3 完整部署一個復(fù)制集 129
6.3.1 創(chuàng)建每個節(jié)點上存儲數(shù)據(jù)的目錄 129
6.3.2 創(chuàng)建每個節(jié)點的日志文件 130
6.3.3 創(chuàng)建每個節(jié)點啟動時的配置文件 130
6.3.4 啟動每個節(jié)點上的mongod實例 131
6.3.5 初始化復(fù)制集 131
6.3.6 將其他節(jié)點添加到復(fù)制集 132
6.3.7 觀察復(fù)制集的運行狀態(tài) 132
6.4 復(fù)制集的維護 137
6.4.1 刪除節(jié)點 137
6.4.2 添加Secondary節(jié)點 138
6.4.3 添加Arbiter節(jié)點 140
6.4.4 復(fù)制集的配置信息 140
6.4.5 重新配置復(fù)制集 143
6.4.6 故障轉(zhuǎn)移Failover分析 145
6.5 復(fù)制集選舉Primary節(jié)點的機制 149
6.5.1 復(fù)制集中的投票節(jié)點和非投票節(jié)點 149
6.5.2 選舉觸發(fā)條件和選舉為Primary節(jié)點的因素 150
6.5.3 復(fù)制集能正常完成選舉的條件 152
6.6 基于Oplog的數(shù)據(jù)同步機制 154
6.6.1 Oplog集合包含的內(nèi)容分析 155
6.6.2 Oplog的默認(rèn)大小及性能影響 156
6.6.3 Oplog集合大小的修改 158
6.6.4 使用initial sync解決Oplog嚴(yán)重落后的問題 159
6.7 寫關(guān)注(writeConcern)模式 162
6.7.1 默認(rèn)的“寫關(guān)注”場景 162
6.7.2 配置寫關(guān)注 162
6.8 讀參考(readPreference)模式 165
6.8.1 讀參考常見的應(yīng)用場景 166
6.8.2 讀參考的幾種模式分析 167
6.8.3 設(shè)置tags標(biāo)簽使讀請求指向特定節(jié)點 168
6.8.4 如何從多個匹配的節(jié)點中選擇一個目標(biāo) 169
6.9 讀關(guān)注(readConcern)模式 171
6.9.1 Primary節(jié)點切換可能導(dǎo)致數(shù)據(jù)回滾 171
6.9.2 設(shè)置讀關(guān)注避免讀到的數(shù)據(jù)被回滾 172
6.10 Change Streams實現(xiàn)數(shù)據(jù)實時同步 176
6.10.1 實現(xiàn)原理 176
6.10.2 實時數(shù)據(jù)流的格式 177
6.10.3 打開實時數(shù)據(jù)流 178
6.10.4 控制實時數(shù)據(jù)流的輸出 179
6.11 小結(jié) 181
第7章 分片集群 182
7.1 分片集群的部署架構(gòu) 182
7.2 手動部署一個分片集群 184
7.2.1 分片shard1配置 184
7.2.2 分片shard2配置 186
7.2.3 config服務(wù)器配置 187
7.2.4 mongos路由配置 188
7.2.5 啟動分片集群 189
7.2.6 配置集合使其分片 192
7.2.7 正確關(guān)閉和重啟集群 194
7.3 片鍵及選擇策略 195
7.3.1 片鍵選擇策略 197
7.3.2 基于Hash分片 200
7.3.3 基于范圍的分片 203
7.4 chunk 204
7.4.1 chunk的分割 204
7.4.2 chunk大小的修改 209
7.5 Balancer 210
7.5.1 一個完整的chunk遷移過程 212
7.5.2 Balancer的管理 214
7.5.3 存儲元數(shù)據(jù)的config數(shù)據(jù)庫 217
7.6 小結(jié) 220
第8章 分布式文件存儲GridFS 221
8.1 什么是GridFS 222
8.2 使用GridFS的場景 226
8.3 GridFS常用操作 227
8.3.1 上傳文件 228
8.3.2 下載文件 229
8.3.3 刪除文件 230
8.3.4 查詢文件 230
8.4 小結(jié) 231
第3篇 MongoDB運維管理
第9章 管理與監(jiān)控 234
9.1 數(shù)據(jù)導(dǎo)入/導(dǎo)出 234
9.1.1 導(dǎo)出工具mongoexport 235
9.1.2 導(dǎo)入工具mongoimport 237
9.2 數(shù)據(jù)備份/恢復(fù) 240
9.2.1 備份工具mongodump 241
9.2.2 恢復(fù)工具mongorestore 243
9.3 命令行工具監(jiān)控管理 245
9.3.1 mongotop 246
9.3.2 mongostat 247
9.3.3 db.stats() 249
9.3.4 db.serverStatus() 251
9.4 可視化數(shù)據(jù)庫操作 256
9.4.1 Compass工具的安裝與連接 256
9.4.2 可視化性能監(jiān)控 257
9.4.3 可視化數(shù)據(jù)庫操作 258
9.4.4 可視化聚集操作 262
9.4.5 內(nèi)嵌mongoshell開發(fā)環(huán)境 263
9.5 小結(jié) 264
第10章 權(quán)限控制 265
10.1 基于角色與權(quán)限控制原理 265
10.2 啟動角色權(quán)限控制功能 267
10.3 MongoDB默認(rèn)提供的角色 271
10.3.1 針對特定數(shù)據(jù)庫中的讀/寫角色 271
10.3.2 針對特定數(shù)據(jù)庫中的管理角色 272
10.3.3 針對所有數(shù)據(jù)庫中的角色 272
10.3.4 超級用戶角色 273
10.4 用戶管理 274
10.4.1 查看數(shù)據(jù)庫中的用戶 274
10.4.2 創(chuàng)建新用戶 275
10.4.3 修改用戶的角色 276
10.4.4 刪除用戶 276
10.5 角色管理 277
10.5.1 查看數(shù)據(jù)庫中的角色 278
10.5.2 查看角色對應(yīng)的權(quán)限信息 278
10.5.3 創(chuàng)建一個自定義角色 280
10.5.4 驗證自定義角色的權(quán)限 282
10.5.5 刪除自定義的角色 283
10.6 小結(jié) 283
第4篇 MongoDB應(yīng)用實踐
第11章 MongoDB應(yīng)用開發(fā) 286
11.1 基于Python的開發(fā) 286
11.1.1 單實例中的CRUD操作 287
11.1.2 復(fù)制集中的操作 290
11.1.3 分片集群中的操作 291
11.1.4 GridFS分布式文件操作 292
11.2 基于.net core的開發(fā) 294
11.2.1 CRUD操作 296
11.2.2 GridFS分布式文件操作 298
11.3 基于Java和Spring Boot框架的開發(fā) 301
11.3.1 開發(fā)框架介紹 301
11.3.2 CRUD操作 304
11.4 小結(jié) 306
第12章 基于MongoDB的數(shù)據(jù)中臺案例 308
12.1 現(xiàn)代企業(yè)數(shù)據(jù)架構(gòu)及痛點 308
12.2 什么是數(shù)據(jù)中臺 309
12.3 數(shù)據(jù)中臺的價值 312
12.4 數(shù)據(jù)中臺的技術(shù)模塊 313
12.5 基于MongoDB的數(shù)據(jù)中臺方案 320
12.6 數(shù)據(jù)中臺方案選型 327
12.7 小結(jié) 328
第13章 百萬級高并發(fā)集群性能提高案例 329
13.1 背景 329
13.2 軟件優(yōu)化 330
13.2.1 業(yè)務(wù)層面優(yōu)化 330
13.2.2 MongoDB線程模型優(yōu)化 331
13.2.3 WiredTiger存儲引擎優(yōu)化 333
13.3 解決服務(wù)器系統(tǒng)磁盤I/O問題 342
13.3.1 服務(wù)器I/O硬件問題背景 342
13.3.2 服務(wù)器I/O硬件問題解決后性能對比 343
13.4 主節(jié)點硬件升級后續(xù)優(yōu)化 346
13.4.1 readConcern配置優(yōu)化 346
13.4.2 替換從節(jié)點服務(wù)器為升級后的高I/O服務(wù)器 350
13.4.3 結(jié)論 351
13.4.4 繼續(xù)優(yōu)化調(diào)整存儲引起參數(shù) 352
13.5 小結(jié) 353
第14章 基于MongoDB的金融系統(tǒng)案例 355
14.1 項目背景 355
14.2 面臨的主要挑戰(zhàn) 355
14.3 技術(shù)選型 356
14.4 方案

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號