互联网
类型
7.8
豆瓣评分
可以朗读
语音朗读
313千字
字数
2014-01-01
发行日期
展开全部
主编推荐语
一部介绍MongoDB数据库开发的作品。
内容简介
与传统的关系型数据库不同,MongoDB是一种面向文档的数据库。这本书这一版共分为六部分,涵盖开发、管理以及部署的各个方面。第一部分展示MongoDB基础知识、核心概念。第二部分介绍使用MongoDB进行开发,包括索引的概念以及各种特殊索引和集合的用法等。第三部分讲述复制,包括副本集的相关概念、创建方法,与应用程序的交互等。第四部讨论分片,包括分片的配置,片键的选择,集群的管理。第五部分阐述创建索引、移动和压缩数据等管理任务,以及MongoDB的持久数据存储。最后一部分集中说明服务器管理。
本书适合数据库开发和管理人员阅读。
目录
- 版权信息
- O'Reilly Media, Inc.介绍
- 业界评论
- 序
- 前言
- 本书的组织结构
- 本书排版规范
- 使用代码示例
- Safari在线图书
- 联系我们
- 致谢
- 第一部分 MongoDB介绍
- 第1章 MongoDB简介
- 1.1 易于使用
- 1.2 易于扩展
- 1.3 丰富的功能
- 1.4 卓越的性能
- 1.5 小结
- 第2章 MongoDB基础知识
- 2.1 文档
- 2.2 集合
- 2.2.1 动态模式
- 2.2.2 命名
- 2.3 数据库
- 2.4 启动MongoDB
- 2.5 MongoDB shell简介
- 2.5.1 运行shell
- 2.5.2 MongoDB客户端
- 2.5.3 shell中的基本操作
- 2.6 数据类型
- 2.6.1 基本数据类型
- 2.6.2 日期
- 2.6.3 数组
- 2.6.4 内嵌文档
- 2.6.5 _id和ObjectId
- 2.7 使用MongoDB Shell
- 2.7.1 shell小贴士
- 2.7.2 使用shell执行脚本
- 2.7.3 创建.mongorc.js文件
- 2.7.4 定制shell提示
- 2.7.5 编辑复合变量
- 2.7.6 集合命名注意事项
- 第3章 创建、更新和删除文档
- 3.1 插入并保存文档
- 3.1.1 批量插入
- 3.1.2 插入校验
- 3.2 删除文档
- 删除速度
- 3.3 更新文档
- 3.3.1 文档替换
- 3.3.2 使用修改器
- 3.3.3 upsert
- 3.3.4 更新多个文档
- 3.3.5 返回被更新的文档
- 3.4 写入安全机制
- 第4章 查询
- 4.1 find简介
- 4.1.1 指定需要返回的键
- 4.1.2 限制
- 4.2 查询条件
- 4.2.1 查询条件
- 4.2.2 OR查询
- 4.2.3 $not
- 4.2.4 条件语义
- 4.3 特定类型的查询
- 4.3.1 null
- 4.3.2 正则表达式
- 4.3.3 查询数组
- 4.3.4 查询内嵌文档
- 4.4 $where查询
- 服务器端脚本
- 4.5 游标
- 4.5.1 limit、skip和sort
- 4.5.2 避免使用skip略过大量结果
- 4.5.3 高级查询选项
- 4.5.4 获取一致结果
- 4.5.5 游标生命周期
- 4.6 数据库命令
- 数据库命令工作原理
- 第二部分 设计应用
- 第5章 索引
- 5.1 索引简介
- 5.1.1 复合索引简介
- 5.1.2 使用复合索引
- 5.1.3 $操作符如何使用索引
- 5.1.4 索引对象和数组
- 5.1.5 索引基数
- 5.2 使用explain()和hint()
- 查询优化器
- 5.3 何时不应该使用索引
- 5.4 索引类型
- 5.4.1 唯一索引
- 5.4.2 稀疏索引
- 5.5 索引管理
- 5.5.1 标识索引
- 5.5.2 修改索引
- 第6章 特殊的索引和集合
- 6.1 固定集合
- 6.1.1 创建固定集合
- 6.1.2 自然排序
- 6.1.3 循环游标
- 6.1.4 没有_id索引的集合
- 6.2 TTL索引
- 6.3 全文本索引
- 6.3.1 搜索语法
- 6.3.2 优化全文本搜索
- 6.3.3 在其他语言中搜索
- 6.4 地理空间索引
- 6.4.1 地理空间查询的类型
- 6.4.2 复合地理空间索引
- 6.4.3 2D索引
- 6.5 使用GridFS存储文件
- 6.5.1 GridFS入门
- 6.5.2 在MongoDB驱动程序中使用GridFS
- 6.5.3 揭开GridFS的面纱
- 第7章 聚合
- 7.1 聚合框架
- 7.2 管道操作符
- 7.2.1 $match
- 7.2.2 $project
- 7.2.3 $group
- 7.2.4 $unwind
- 7.2.5 $sort
- 7.2.6 $limit
- 7.2.7 $skip
- 7.2.8 使用管道
- 7.3 MapReduce
- 7.3.1 示例1:找出集合中的所有键
- 7.3.2 示例2:网页分类
- 7.3.3 MongoDB和MapReduce
- 7.4 聚合命令
- 7.4.1 count
- 7.4.2 distinct
- 7.4.3 group
- 第8章 应用程序设计
- 8.1 范式化与反范式化
- 8.1.1 数据表示的例子
- 8.1.2 基数
- 8.1.3 好友、粉丝,以及其他的麻烦事项
- 8.2 优化数据操作
- 8.2.1 优化文档增长
- 8.2.2 删除旧数据
- 8.3 数据库和集合的设计
- 8.4 一致性管理
- 8.5 模式迁移
- 8.6 不适合使用MongoDB的场景
- 第三部分 复制
- 第9章 创建副本集
- 9.1 复制简介
- 9.2 建立副本集
- 9.3 配置副本集
- 9.3.1 rs辅助函数
- 9.3.2 网络注意事项
- 9.4 修改副本集配置
- 9.5 设计副本集
- 选举机制
- 9.6 成员配置选项
- 9.6.1 选举仲裁者
- 9.6.2 优先级
- 9.6.3 隐藏成员
- 9.6.4 延迟备份节点
- 9.6.5 创建索引
- 第10章 副本集的组成
- 10.1 同步
- 10.1.1 初始化同步
- 10.1.2 处理陈旧数据
- 10.2 心跳
- 成员状态
- 10.3 选举
- 10.4 回滚
- 如果回滚失败
- 第11章 从应用程序连接副本集
- 11.1 客户端到副本集的连接
- 11.2 等待写入复制
- 11.2.1 可能导致错误的原因
- 11.2.2 "w"的其他值
- 11.3 自定义复制保证规则
- 11.3.1 保证复制到每个数据中心的一台服务器上
- 11.3.2 保证写操作被复制到可见节点中的“大多数”
- 11.3.3 创建其他规则
- 11.4 将读请求发送到备份节点
- 11.4.1 出于一致性考虑
- 11.4.2 出于负载的考虑
- 11.4.3 何时可以从备份节点读取数据
- 第12章 管理
- 12.1 以单机模式启动成员
- 12.2 副本集配置
- 12.2.1 创建副本集
- 12.2.2 修改副本集成员
- 12.2.3 创建比较大的副本集
- 12.2.4 强制重新配置
- 12.3 修改成员状态
- 12.3.1 把主节点变为备份节点
- 12.3.2 阻止选举
- 12.3.3 使用维护模式
- 12.4 监控复制
- 12.4.1 获取状态
- 12.4.2 复制图谱
- 12.4.3 复制循环
- 12.4.4 禁用复制链
- 12.4.5 计算延迟
- 12.4.6 调整oplog大小
- 12.4.7 从延迟备份节点中恢复
- 12.4.8 创建索引
- 12.4.9 在预算有限的情况下进行复制
- 12.4.10 主节点如何跟踪延迟
- 12.5 主从模式
- 12.5.1 从主从模式切换到副本集模式
- 12.5.2 让副本集模仿主从模式的行为
- 第四部分 分片
- 第13章 分片
- 13.1 分片简介
- 13.2 理解集群的组件
- 13.3 快速建立一个简单的集群
- 第14章 配置分片
- 14.1 何时分片
- 14.2 启动服务器
- 14.2.1 配置服务器
- 14.2.2 mongos进程
- 14.2.3 将副本集转换为分片
- 14.2.4 增加集群容量
- 14.2.5 数据分片
- 14.3 MongoDB如何追踪集群数据
- 14.3.1 块范围
- 14.3.2 拆分块
- 14.4 均衡器
- 第15章 选择片键
- 15.1 检查使用情况
- 15.2 数据分发
- 15.2.1 升序片键
- 15.2.2 随机分发的片键
- 15.2.3 基于位置的片键
- 15.3 片键策略
- 15.3.1 散列片键
- 15.3.2 GridFS的散列片键
- 15.3.3 流水策略
- 15.3.4 多热点
- 15.4 片键规则和指导方针
- 15.4.1 片键限制
- 15.4.2 片键的势
- 15.5 控制数据分发
- 15.5.1 对多个数据库和集合使用一个集群
- 15.5.2 手动分片
- 第16章 分片管理
- 16.1 检查集群状态
- 16.1.1 使用sh.status查看集群摘要信息
- 16.1.2 检查配置信息
- 16.2 查看网络连接
- 16.2.1 查看连接统计
- 16.2.2 限制连接数量
- 16.3 服务器管理
- 16.3.1 添加服务器
- 16.3.2 修改分片的服务器
- 16.3.3 删除分片
- 16.3.4 修改配置服务器
- 16.4 数据均衡
- 16.4.1 均衡器
- 16.4.2 修改块大小
- 16.4.3 移动块
- 16.4.4 特大块
- 16.4.5 刷新配置
- 第五部分 应用管理
- 第17章 了解应用的动态
- 17.1 了解正在进行的操作
- 17.1.1 寻找有问题的操作
- 17.1.2 终止操作的执行
- 17.1.3 假象
- 17.1.4 避免幽灵操作
- 17.2 使用系统分析器
- 17.3 计算空间消耗
- 17.3.1 文档
- 17.3.2 集合
- 17.3.3 数据库
- 17.4 使用mongotop和monogostat
- 第18章 数据管理
- 18.1 配置身份验证
- 18.1.1 身份验证基本原理
- 18.1.2 配置身份验证
- 18.1.3 身份验证的工作原理
- 18.2 建立和删除索引
- 18.2.1 在独立的服务器上建立索引
- 18.2.2 在副本集上建立索引
- 18.2.3 在分片集群上建立索引
- 18.2.4 删除索引
- 18.2.5 注意内存溢出杀手
- 18.3 预热数据
- 18.3.1 将数据库移至内存
- 18.3.2 将集合移至内存
- 18.3.3 自定义预热
- 18.4 压缩数据
- 18.5 移动集合
- 18.6 预分配数据文件
- 第19章 持久性
- 19.1 日记系统的用途
- 19.1.1 批量提交写入操作
- 19.1.2 设定提交时间间隔
- 19.2 关闭日记系统
- 19.2.1 替换数据文件
- 19.2.2 修复数据文件
- 19.2.3 关于mongod.lock文件
- 19.2.4 隐蔽的异常退出
- 19.3 MongoDB无法保证的事项
- 19.4 检验数据损坏
- 19.5 副本集中的持久性
- 第六部分 服务器管理
- 第 20 章 启动和停止MongoDB
- 20.1 从命令行启动
- 使用配置文件
- 20.2 停止MongoDB
- 20.3 安全性
- 20.3.1 数据加密
- 20.3.2 SSL安全连接
- 20.4 日志
- 第21章 监控MongoDB
- 21.1 监控内存使用状况
- 21.1.1 有关电脑内存的介绍
- 21.1.2 跟踪监测内存使用状况
- 21.1.3 跟踪监测缺页中断
- 21.1.4 减少索引树的脱靶次数
- 21.1.5 IO延迟
- 21.1.6 跟踪监测后台刷新平均时间
- 21.2 计算工作集的大小
- 一些工作集的例子
- 21.3 跟踪监测性能状况
- 跟踪监测空余空间
- 21.4 监控副本集
- 第22章 备份
- 22.1 对服务器进行备份
- 22.1.1 文件系统快照
- 22.1.2 复制数据文件
- 22.1.3 使用mongodump
- 22.2 对副本集进行备份
- 22.3 对分片集群进行备份
- 22.3.1 备份和恢复整个集群
- 22.3.2 备份和恢复单独的分片
- 22.4 使用mongooplog进行增量备份
- 第23章 部署MongoDB
- 23.1 设计系统结构
- 23.1.1 选择存储介质
- 23.1.2 推荐的RAID配置
- 23.1.3 CPU
- 23.1.4 选择操作系统
- 23.1.5 交换空间
- 23.1.6 文件系统
- 23.2 虚拟化
- 23.2.1 禁止内存过度分配
- 23.2.2 神秘的内存
- 23.2.3 处理网络磁盘的IO问题
- 23.2.4 使用非网络磁盘
- 23.3 系统配置
- 23.3.1 禁用NUMA
- 23.3.2 更智能地预读取数据
- 23.3.3 禁用大内存页面
- 23.3.4 选择一种磁盘调度算法
- 23.3.5 不要记录访问时间
- 23.3.6 修改限制
- 23.4 网络配置
- 23.5 系统管理
- 23.5.1 时钟同步
- 23.5.2 OOM Killer
- 23.5.3 关闭定期任务
- 附录A 安装MongoDB
- A.1 选择一个版本
- A.2 在Windows系统中安装
- A.3 在POSIX系统(Linux、Mac OS X、Solaris)中安装
- 附录B 深入MongoDB
- B.1 BSON
- B.2 线路协议
- B.3 数据文件
- B.4 命名空间与区段
- B.5 内存映射存储引擎
- 术语
展开全部
出版方
人民邮电出版社·图灵出品
图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。