前言
在大数据工作中经常涉及到非结构化数据处理,用关系型数据库太复杂耗时,用redis不支持复杂的查询条件,然而用mongodb能完美解决以上问题,同时还能用来作为快速扩展数据结构的一种完美解决方案。
为什么写这本书
我在旅游行业有多年大数据研发经验,期间使用过各种关系型和非关系型数据库。 而且我是喜欢自由,也喜欢分享的技术爱好者,推崇用开源的技术方式来写技术类的书籍,希望能推动国内的开源技术书的发展。
不管怎样,我愿意分享我多年来使用mongodb在项目实践中遇到的各种问题和相应处理方案,通过本书可以掌握如下技能:
- 能熟练使用mongodb各种特性解决工作中常见的问题。
- 能合熟练掌握mongodb性能监控和优化。
- 能合理设计mongodb表结构是数据的使用达到最优。
- 能掌握mongdb高级特性,达到数据库运维人员水平。
总之,特别想用我们的经验来告诉埋头苦干的人,要站在巨人的肩膀上。
特色
这里讲到的内容都是在公司实践中遇到的坑,特别适合刚开始使用mongodb和需要在mongodb快速提升的小伙伴。
每一章内容都配备一个相应的项目实践,通过项目能更深入掌握后面的理论知识。
每章内容都是精心挑选的,难度适当。各章之间都有很好的衔接,也可独自成为一个知识点,可以独立章节学习,当然更加推荐连续学习。
本书结构
章节从mongdb数据的读写到聚合再到索引优化,再到数据结构设计,再到mongodb性能优化,从简单到深入。
- 第一章:数据存储(数据怎么写入?)
- 第二章:数据更新(已存在数据怎么更新?)
- 第三章:保存和更新(怎么避免脏数据问题?)
- 第四章:数据查询常用操作(怎么实现mysql支持的查询功能?)
- 第五章:查询和写入性能优化(怎么保证批量写入和聚合查询性能?mongodb索引怎么优化?)
- 第六章:合理规划mongodb数据表结构(什么样的mongodb使用起来又方便又快速?)
- 第七章:monodb快速扩容(数量达到一定量级后怎么保证快速扩容)
本书使用的mongodb版本和客户端
- mongodb版本:4.0.3
- python版本:python 3.6
- pymongo版本:3.1.0
- mongodb客户端:Robomongo 0.9.0-RC6
- 操作系统:macOS,windows
- 本书所有实例代码均使用mongdb命令或python脚本实现