• 1
  • 2
  • 3
  • 4
  • 5
mssql数据库问题 首 页  »  帮助中心  »  数据库  »  mssql数据库问题
MongoDB使用教程开篇
发布日期:2016-4-29 15:4:32

  根据DB-Engines的排名统计,MongoDB综合排名第四(2016年1月数据,前三名分别是Oracle,MySQL和SQL Server),NoSQL领域(非RDBMS)里排名第一。尤其是在2015年里,一口气发布了两个大版本,3月发布了3.0版本,11月发布3.2版本。

  如下图所示:

  

  在3.2版本中开始突破NoSQL的枷锁,提供了Join操作,可见其并不满足于NoSQL“独角兽”的称呼,目标早已定位成NewSQL,向RDBMS发起挑战。

  

  但是MongoDB毕竟不是RDBMS,甚至在数据建模上也有很多相反的原则,比如说MongoDB更加提倡反范式化。而人的惯性思维作用,是更原因相信“传统”,比如说MongoDB:逐渐变得无关紧要这篇文章,作者并不习惯于使用MongoDB的文档模型,并且不肯定文档模型带来的开发效率的提升,而更依赖传统数据库结构带来的沉淀,我怀疑作者对MongoDB的数据建模上还是采用着范式化结构,所以才会如此依赖多文档事务,并且对MongoDB带来强烈的不满。也没有关注到最新的MongoDB已经开始采用WiredTiger存储引擎,正式步入高性能数据库行列。

  还有那篇著名的讨论“Don’t use MongoDB”,这篇文章发表于11年,原文有很多内容并不属实(作者承认那篇文章只是个玩笑),而且10gen(MongoDB公司之前的名称是10gen) CTO对此还进行了回复,可是直到今天,很多人还是只知前者,甚至还深信不疑,在社区中反复抛出同样的观点,比如说:“MongoDB会丢数据”。

  造成各种个样的误解,最大的原因还是“不了解”或者是说MongoDB大过于神秘,它不像MySQL,Oracle已经有大量的文章,大量的解惑教程,MySQL甚至还有各种的源码分析。MongoDB社区生态上非常年轻,相关的技术文章或者书籍还不丰富,回顾一下我自己学习MongoDB的过程,一方面来自官方文档,另一方面来自各种博客书籍。但是内容上大部分只是叫你HOW,而不是为什么,不能知其所以然。

  随着云服务的起步,运维模式的变化,出现了越来越多的DEV+DBA角色,仅仅会用API,早就已经跟不上时代了,更多的还要做到会管。比如什么时候要建立索引?查询语句是怎么执行的?哪里会有潜在的问题?这些都是作为数据操作者应该掌握的知识。但并不是每个人都有时间从源码上一点点学习。

  阿里云作为中国第一的云计算公司,正式开始提供MongoDB SAAS服务。作为MongoDB生态圈中的一员,有义务做出一个更深入的教程,MongoDB用户可以通过文章提升自身的操作管理水平,开源爱好者也可以将该文章作为源码阅读的辅助。

  系列第一部分重点在“用”好MongoDB,第二部分重点是“管”好MongoDB,第三部分是案例的收集。