第1章 大数据 1
1.1 入门指南 1
1.2 大数据 3
1.3 大数据源 4
1.4 大数据的三个V 5
1.4.1 数量 6
1.4.2 多样性 6
1.4.3 速率 7
1.5 大数据的使用 7
1.5.1 可见性 8
1.5.2 发现和分析信息 8
1.5.3 市场细分和产品定制 8
1.5.4 协助决策 8
1.5.5 创新 8
1.6 大数据的挑战 9
1.6.1 政策与程序 9
1.6.2 访问数据 9
1.6.3 技术与技能 9
1.7 传统系统与大数据 10
1.7.1 大数据的结构 10
1.7.2 数据存储 10
1.7.3 数据处理 10
1.8 大数据技术 10
1.9 本章小结 11
第2章 NoSQL 13
2.1 SQL 13
2.2 NoSQL 13
2.2.1 定义 14
2.2.2 NoSQL简史 14
2.3 ACID对比BASE 15
2.3.1 CAP定理 15
2.3.2 BASE 16
2.4 NoSQL的优缺点 17
2.4.1 NoSQL的优点 17
2.4.2 NoSQL的缺点 18
2.5 SQL与NoSQL数据库的对比 18
2.6 NoSQL数据库的种类 21
2.7 本章小结 22
第3章 MongoDB介绍 23
3.1 历史 23
3.2 MongoDB设计原则 24
3.2.1 高速、可扩展性与敏捷性 24
3.2.2 非关系型方法 24
3.2.3 基于JSON的文档存储 25
3.2.4 性能与功能对比 25
3.2.5 随处都能运行数据库 25
3.3 与SQL的对比 26
3.4 本章小结 26
第4章 MongoDB数据模型 27
4.1 数据模型 27
4.1.1 JSON和BSON 28
4.1.2 标识符(id) 29
4.1.3 固定集合 30
4.2 多态模式 30
4.2.1 面向对象编程 30
4.2.2 模式演化 31
4.3 本章小结 32
第5章 MongoDB-安装与配置 33
5.1 选择你的版本 33
5.2 在Lmux上安装MongoDB 33
5.2.1 使用仓储进行安装 34
5.2.2 手动安装 34
5.3 在Windows上安装MongoDB 35
5.4 运行MongoDB 35
5.4.1 先决条件 35
5.4.2 开启服务 36
5.5 验证安装结果 36
5.6 MongoDB Shell 36
5.7 保障部署安全 37
5.7.1 使用身份验证和授权 37
5.7.2 控制网络访问 42
5.8 使用MongoDB云管理器进行配置 46
5.9 本章小结 50
第6章 使用MongoDB Shell 51
6.1 基本查询 51
6.1.1 创建和插入 56
6.1.2 显式创建集合 58
6.1.3 使用循环插入文档 58
6.1.4 通过显式指定id进行插入 59
6.1.5 更新 59
6.1.6 删除 61
6.1.7 读取 62
6.1.8 使用索引 68
6.2 进阶介绍 78
6.2.1 使用条件操作符 78
6.2.2 正则表达式 80
6.2.3 MapReduce 81
6.2.4 aggregate() 83
6.3 设计应用程序的数据模型 84
6.3.1 关系型数据模型与标准化 84
6.3.2 MongoDB文档数据模型方法 86
6.4 本章小结 93
第7章 MongoDB架构 95
7.1 核心程序 95
7.1.1 mongod 95
7.1.2 mongo 95
7.1.3 mongos 96
7.2 MongoDB工具 96
7.3 独立部署 96
7.4 复制 97
7.4.1 主/从复制 97
7.4.2 副本集 98
7.4.3 实现带有副本集的高级群集 115
7.5 分片 124
7.5.1 分片组件 126
7.5.2 数据分发过程 127
7.5.3 数据平衡过程 130
7.5.4 操作 133
7.5.5 实现分片 134
7.5.6 控制集合分布(基于标签分片) 142
7.5.7 在将数据导入到分片环境时要记住的要点 152
7.5.8 监控分片 153
7.5.9 监控配置服务器 153
7.6 生产环境群集架构 153
7.6.1 场景1 154
7.6.2 场景2 155
7.6.3 场景3 156
7.6.4 场景4 157
7.7 本章小结 158
第8章 MongoDB阐释 159
8.1 数据存储引擎 159
8.2 (与MMAPv1相关的)数据文件 161
8.3 (与WiredTiger相关的)数据文件 168
8.4 读取和写入 170
8.5 使用日志时如何写入数据 172
8.6 GridFS——MongoDB文件系统 176
8.6.1 GridFS的基本原理 177
8.6.2 GridFS的底层机制 177
8.6.3 使用GridFS 179
8.7 索引 182
8.7.1 索引类型 183
8.7.2 行为和限制 188
8.8 本章小结 189
第9章 管理MongoDB 191
9.1 管理工具 191
9.1.1 mongo 191
9.1.2 第三方管理工具 191
9.2 备份和恢复 191
9.2.1 数据文件备份 192
9.2.2 mongodump和mongorestore 192
9.2.3 fsync和锁 196
9.2.4 从备份 198
9.3 导入和导出 198
9.3.1 mongoimport 198
9.3.2 mongoexport 199
9.4 管理服务器 199
9.4.1 启动一台服务器 199
9.4.2 停止服务器运行 200
9.4.3 浏览日志文件 200
9.4.4 服务器状态 201
9.4.5 识别和修复MongoDB 203
9.4.6 识别和修复集合级别的数据 204
9.5 监控MongoDB 205
9.5.1 mongostat 205
9.5.2 mongod网络接口 206
9.5.3 第三方插件 206
9.5.4 MongoDB云管理器 206
9.6 本章小结 212
第10章 MongoDB用例 213
10.1 用例1——性能监控 213
10.1.1 模式设计 213
10.1.2 操作 214
10.1.3 分片 218
10.1.4 管理数据 219
10.2 用例2——社交网络 220
10.2.1 模式设计 220
10.2.2 操作 222
10.2.3 分片 225
10.3 本章小结 225
第11章 MongoDB使用限制 227
11.1 MongoDB的空间过大(对于MMAPv1而言) 227
11.2 内存问题(对于MMAPv1而言) 228
11.3 32位与64位对比 228
11.4 BSON文档 228
11.5 命名空间使用限制 229
11.6 索引使用限制 229
11.7 固定集合使用限制——固定集合中文档的最大数量 229
11.8 分片使用限制 229
11.8.1 及早分片以避免出现问题 230
11.8.2 不能更新分片键 230
11.8.3 分片集合使用限制 230
11.8.4 选择合适的分片键 230
11.9 安全性限制 230
11.9.1 默认情况下没有身份验证 230
11.9.2 与MongoDB的交互通信没有被加密 231
11.10 写入和读取限制 231
11.10.1 大小写敏感的查询 231
11.10.2 类型敏感的字段 231
11.10.3 没有联结 231
11.10.4 事务 231
11.11 MongoDB不适用的范围 232
11.12 本章小结 232
第12章 MongoDB的最佳实践 233
12.1 部署 233
12.1.1 MongoDB网站的硬件配置建议 234
12.1.2 要注意的一些要点 235
12.2 编码 235
12.3 应用程序响应时间优化 238
12.4 数据安全性 238
12.5 管理 239
12.6 复制延迟 239
12.7 分片 240
12.8 监控 240
12.9 本章小结 241