不可否认的是,NoSQL 数据库已经成为了互联网开发的新标配。其中原因之一就是因为传统关系型数据库将数据集中存储至单一节点的解决方案,在性能、可用性和运维成本这三方面已经难以满足互联网的海量数据场景。

今天,我想以 MongoDB 为例,分享下我的亲身经历,2012 年我在硅谷创业,做一个叫 Gameface 的游侠社交化平台的时候,我们当时基于 MySQL 的游戏后台到了近 1000 并发的时候,MySQL 就频繁宕机。

很偶然的机会我看到一个 MongoDB 的社区会议,觉得可以尝试一下,回来花了一个周末把代码改写成了 Java + MongoDB 代码,结果单节点可以支撑到 4000 多的并发写入,整整提升了 4 倍。

不过,让我从此喜欢上这个数据库的原因,是我发现做同样功能的数据库访问层代码,换成 MongoDB 以后代码量从 2000 行降到了 200 多行!这是因为 MongoDB 直接使用了程序员非常熟悉的类似对象模型的 JSON 数据结构,从而大幅度的简化了模式设计,ORM 层编码等 CRUD 操作的流程。

简而言之,作为一个新时代的成熟数据库产品,MongoDB 最大的优势是开发效率的显著提升和卓越的横向扩展能力。

  • 如果你是开发者,MongoDB 可以让你花更少的时间在数据库上,专注于业务编程;
  • 如果你是 DBA,它 可以帮你解决系统高可用,高性能以及横向扩展的痛点;
  • 如果你是架构师或产品经理,MongoDB 是一个灵活的数据库,可以快速响应业务的需求变化。

在这里给大家推荐一份MongoDB的权威指南!从基础入门到项目实操,一步一步带你走进MongoDB的世界!

第一部分:基础篇

  • 走进MongoDB
  • 安装和配置
  • 体系结构
  • 快速入门




放弃mysql 选pG 放弃mysql 选择mongoDB_放弃mysql 选pG


第二部分:应用篇

  • 高级查询
  • Capped Collection
  • GridFS
  • MapReduce


放弃mysql 选pG 放弃mysql 选择mongoDB_放弃mysql 选pG_02


第三部分:管理篇

  • 数据导出mongoexport
  • 数据导入mongoimport
  • 数据备份mongodump
  • 数据恢复mongorestore
  • 访问控制
  • 命令行操作
  • 进程控制


放弃mysql 选pG 放弃mysql 选择mongoDB_MySQL_03


第四部分:性能篇

  • 索引
  • explain执行计划
  • 优化器profile
  • 性能优化
  • 性能监控


放弃mysql 选pG 放弃mysql 选择mongoDB_Java_04


第五部分:架构篇

  • Replica Sets 复制集
  • Sharding 分片
  • Replica Sets + Sharding


放弃mysql 选pG 放弃mysql 选择mongoDB_MySQL_05


美国市场研究公司 Forrester 在 2019 的 NoSQL 报告中指出,「全世界,有半数的数据和分析技术决策者都已经或正在建构 NoSQL 平台」,而MongoDB作为NoSQL的领导者,俨然成为IT 人员必不可少的技能之