MongoDB权威指南(第2版)
上QQ阅读APP看书,第一时间看更新

10年前,没人能预见互联网的发展会给关系型数据库带来如此多的挑战。在此期间,我亲身经历了在快速发展的大型互联网公司应用MySQL的过程。开始时只有很少的数据,一台服务器就可以了。然后就得建立备份,以便应对大量的读取和不时的宕机。用不了多长时间,就得加一个缓存层,调整所有的查询,投入更多的硬件。

最后,你会发现自己需要将数据切分到多个集群上,并重新构建大量的应用逻辑以适应这种切分。之后不久,你又会发现被自己数月前设计的数据库结构限制住了。

怎么会呢?这是因为现在集群中的数据太多,需要更改模式,会花费很长时间,也需要DBA投入相当多的宝贵时间。在代码中处理要简单一些,但也需要小型开发团队数月的努力。最后,你会不断地拷问自己有没有更好的方法,或者为什么没有在核心数据库服务器中内置更多此类功能。

为了应对现在Web应用的数据膨胀,开源社区像以往一样提供了太多的“好方法”。从内存中的键值型存储到可以使用SQL的MySQL/InnoDB变种等复杂方法,无所不有。但选择多了,做出正确的选择反而更难了。我自己就研究过其中很多种。

MongoDB的实用性着实令人着迷。MongoDB并不去迎合所有人的全部需求。它在功能和复杂性之间取得了很好的平衡,并且大大简化了原先十分复杂的任务。也就是说,它具备支撑今天主流Web应用的关键功能:索引、复制、分片、丰富的查询语法,特别灵活的数据模型。与此同时还不牺牲速度。

秉持MongoDB自身的风格,本书简洁明快、通俗易懂。MongoDB新用户通过阅读第1章,马上就能入门,而有经验的用户则可以体验到本书的广度和权威性。对于流行的客户端API和高级的管理主题,如复制、备份和分片,本书都是权威参考。

根据我最近每天使用MongoDB的经验,我相信本书会始终不离我左右,从最初安装到进行分片或备份式集群的产品化部署,它都是我最好的助手。任何想仔细研究使用MongoDB的人都需要这本重要的参考书。

——Craigslist软件工程师,Jeremy Zawodny

20108