下载地址:网盘下载
内容简介 · · · · · ·
《深入学习MongoDB》分两部分,分别对应O'Reilly公司出版的Scaling MongoDB 50Tips and Tricks for Mongo DB Developers两《深入学习MongoDB》的内容。第一部分全面讲解了有关建立和使用集群的内容,不仅从应用开发人员的角度讲解了MongoDB的使用,而且从运维方面介绍了集群的管理。其中内容包括通过分片设置MongoDB集群,分片的工作原理,查询和更新数据,操作、监控和备份集群,错误处理。第二部分依次从应用设计、实现、优化、数据安全和管理方面介绍了使用MongoDB构建应用的技巧,内容包括范式化与反范式化的利弊权衡,复制组的故障恢复等。
作者简介 · · · · · ·
Kristina Chodorow 10gen公司的软件工程师,MongoDB项目的核心成员,从事与数据库服务器、PHP驱动、Perl驱动等相关的工作。她常在世界级技术大会上作报告,包括OSCON、LinuxCon、FOSDEM和Latinoware。
目录 · · · · · ·
MongoDB 扩展技术
第1 章 欢迎来到分布式计算的世界 1
第2 章 理解分片 5
2.1 分割数据 7
2.1.1 分配数据 8
2.1.2 如何创建块 11
2.2 平衡 14
2.3 mongos 17
2.4 配置服务器 18
2.5 集群的构造 18
第3 章 建立集群 21
3.1 选择片键 23
3.1.1 小基数片键 23
3.1.2 升序片键 25
3.1.3 随机片键 26
3.1.4 好片键 27
3.2 新老集合分片 29
3.2.1 快速起步 29
3.2.2 配置服务器 29
3.2.3 mongos 30
3.2.4 分片 31
3.2.5 数据库和集合 32
3.3 增减容量 33
3.3.1 移除分片 34
3.3.2 修改分片中的服务器 35
第4 章 使用集群 37
4.1 查询 39
4.2 为什么会这样 39
4.2.1 计数 39
4.2.2 唯一索引 40
4.2.3 更新 41
4.3 MapReduce 42
第5 章 管理 43
5.1 使用命令行 45
5.1.1 了解概况 45
5.1.2 配置集合 46
5.1.3 应该连接什么 47
5.2 监控 47
5.2.1 mongostat 48
5.2.2 Web 管理界面 48
5.3 备份 49
5.4 关于架构的建议 50
5.4.1 创建应急站点 50
5.4.2 挖护城河 50
5.5 错误处理 51
5.5.1 分片停机 51
5.5.2 多数分片停机 51
5.5.3 配置服务器停机 52
5.5.4 mongos 进程死掉 52
5.5.5 其他注意事项 53
第6 章 学习资源 55
MongoDB 开发技巧50 例
第1 章 应用设计技巧 65
1.1 技巧1:速度和完整性的折中 67
1.1.1 示例:网上购物车 68
1.1.2 考虑因素 69
1.2 技巧2:适应未来的数据要范式化 70
1.3 技巧3:尽量单个查询获取数据 71
1.3.1 示例:博客 71
1.3.2 示例:相册 72
1.4 技巧4:嵌入关联数据 72
1.5 技巧5:嵌入时间点数据 73
1.6 技巧6:不要嵌入不断增加的数据 73
1.7 技巧7:预填充数据 73
1.8 技巧8:尽可能预先分配空间 74
1.9 技巧9:用数组存放要匿名访问的内嵌数据 75
1.10 技巧10:文档要自给自足 77
1.11 技巧11:优先使用$ 操作符 79
1.11.1 深入了解 79
1.11.2 提高性能 79
1.12 技巧12:随时聚合 80
1.13 技巧13:编写代码处理数据完整性问题 80
第2 章 实现技巧 83
2.1 技巧14:使用正确的类型 85
2.2 技巧15:用简单唯一的id 替换_id 85
2.3 技巧16:不要用文档做_id 86
2.4 技巧17:不要用数据库引用 86
2.5 技巧18:不要用GridFS 处理小的二进制数据 87
2.6 技巧19:处理“无缝”故障切换 88
2.7 技巧20:处理复制组失效及故障恢复 88
第3 章 优化技巧 89
3.1 技巧21:尽可能减少磁盘访问 91
3.2 技巧22:使用索引减少内存占用 92
3.3 技巧23:不要到处使用索引 94
3.4 技巧24:索引覆盖查询 95
3.5 技巧25:使用复合索引加快多个查询 95
3.6 技巧26:通过建立分级文档加速扫描 96
3.7 技巧27:AND 型查询要点 98
3.8 技巧28:OR 型查询要点 98
第4 章 数据安全性和一致性 101
4.1 技巧29:单机做日志,多机则复制 103
4.2 技巧30:坚持使用复制或日志, 或两者兼用 104
4.3 技巧31:不要信任repair 恢复的数据 105
4.4 技巧32:getlasterror 105
4.5 技巧33:开发过程中一定要使用安全写入 106
4.6 技巧34:使用w 参数 106
4.7 技巧35:一定要给w 设置超时 107
4.8 技巧36:不要每次写入都调用fsync 108
4.9 技巧37:崩溃之后正常启动 108
4.10 技巧38:持久性服务器的瞬时备份 108
第5 章 管理技巧 109
5.1 技巧39:手工清理块集合 111
5.2 技巧40:用repair 压缩数据库 111
5.3 技巧41:不要改变复制组成员投票的权值 112
5.4 技巧42:无活跃节点时可重置复制组 113
5.5 技巧43:不必指定--shardsvr 和--configsvr 参数 115
5.6 技巧44:开发时才用--notablescan 115
5.7 技巧45:学习JavaScript 116
5.8 技巧46:在shell 中管理所有服务器和数据库 116
5.9 技巧47:获得帮助 117
5.10 技巧48:创建启动文件 118
5.11 技巧49:自定义函数 119
5.12 技巧50:使用单个连接读取自身写入 120
第1 章 欢迎来到分布式计算的世界 1
第2 章 理解分片 5
2.1 分割数据 7
2.1.1 分配数据 8
2.1.2 如何创建块 11
2.2 平衡 14
2.3 mongos 17
2.4 配置服务器 18
2.5 集群的构造 18
第3 章 建立集群 21
3.1 选择片键 23
3.1.1 小基数片键 23
3.1.2 升序片键 25
3.1.3 随机片键 26
3.1.4 好片键 27
3.2 新老集合分片 29
3.2.1 快速起步 29
3.2.2 配置服务器 29
3.2.3 mongos 30
3.2.4 分片 31
3.2.5 数据库和集合 32
3.3 增减容量 33
3.3.1 移除分片 34
3.3.2 修改分片中的服务器 35
第4 章 使用集群 37
4.1 查询 39
4.2 为什么会这样 39
4.2.1 计数 39
4.2.2 唯一索引 40
4.2.3 更新 41
4.3 MapReduce 42
第5 章 管理 43
5.1 使用命令行 45
5.1.1 了解概况 45
5.1.2 配置集合 46
5.1.3 应该连接什么 47
5.2 监控 47
5.2.1 mongostat 48
5.2.2 Web 管理界面 48
5.3 备份 49
5.4 关于架构的建议 50
5.4.1 创建应急站点 50
5.4.2 挖护城河 50
5.5 错误处理 51
5.5.1 分片停机 51
5.5.2 多数分片停机 51
5.5.3 配置服务器停机 52
5.5.4 mongos 进程死掉 52
5.5.5 其他注意事项 53
第6 章 学习资源 55
MongoDB 开发技巧50 例
第1 章 应用设计技巧 65
1.1 技巧1:速度和完整性的折中 67
1.1.1 示例:网上购物车 68
1.1.2 考虑因素 69
1.2 技巧2:适应未来的数据要范式化 70
1.3 技巧3:尽量单个查询获取数据 71
1.3.1 示例:博客 71
1.3.2 示例:相册 72
1.4 技巧4:嵌入关联数据 72
1.5 技巧5:嵌入时间点数据 73
1.6 技巧6:不要嵌入不断增加的数据 73
1.7 技巧7:预填充数据 73
1.8 技巧8:尽可能预先分配空间 74
1.9 技巧9:用数组存放要匿名访问的内嵌数据 75
1.10 技巧10:文档要自给自足 77
1.11 技巧11:优先使用$ 操作符 79
1.11.1 深入了解 79
1.11.2 提高性能 79
1.12 技巧12:随时聚合 80
1.13 技巧13:编写代码处理数据完整性问题 80
第2 章 实现技巧 83
2.1 技巧14:使用正确的类型 85
2.2 技巧15:用简单唯一的id 替换_id 85
2.3 技巧16:不要用文档做_id 86
2.4 技巧17:不要用数据库引用 86
2.5 技巧18:不要用GridFS 处理小的二进制数据 87
2.6 技巧19:处理“无缝”故障切换 88
2.7 技巧20:处理复制组失效及故障恢复 88
第3 章 优化技巧 89
3.1 技巧21:尽可能减少磁盘访问 91
3.2 技巧22:使用索引减少内存占用 92
3.3 技巧23:不要到处使用索引 94
3.4 技巧24:索引覆盖查询 95
3.5 技巧25:使用复合索引加快多个查询 95
3.6 技巧26:通过建立分级文档加速扫描 96
3.7 技巧27:AND 型查询要点 98
3.8 技巧28:OR 型查询要点 98
第4 章 数据安全性和一致性 101
4.1 技巧29:单机做日志,多机则复制 103
4.2 技巧30:坚持使用复制或日志, 或两者兼用 104
4.3 技巧31:不要信任repair 恢复的数据 105
4.4 技巧32:getlasterror 105
4.5 技巧33:开发过程中一定要使用安全写入 106
4.6 技巧34:使用w 参数 106
4.7 技巧35:一定要给w 设置超时 107
4.8 技巧36:不要每次写入都调用fsync 108
4.9 技巧37:崩溃之后正常启动 108
4.10 技巧38:持久性服务器的瞬时备份 108
第5 章 管理技巧 109
5.1 技巧39:手工清理块集合 111
5.2 技巧40:用repair 压缩数据库 111
5.3 技巧41:不要改变复制组成员投票的权值 112
5.4 技巧42:无活跃节点时可重置复制组 113
5.5 技巧43:不必指定--shardsvr 和--configsvr 参数 115
5.6 技巧44:开发时才用--notablescan 115
5.7 技巧45:学习JavaScript 116
5.8 技巧46:在shell 中管理所有服务器和数据库 116
5.9 技巧47:获得帮助 117
5.10 技巧48:创建启动文件 118
5.11 技巧49:自定义函数 119
5.12 技巧50:使用单个连接读取自身写入 120
下载地址:网盘下载