MongoDB的发展
当前位置:以往代写 > 数据库教程 >MongoDB的发展
2019-06-14

MongoDB的发展

MongoDB的发展

  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

  MongoDB更新换代很快,在本文,小编介绍MongoDB2.4、MongoDB2.6、MongoDB3.0这三个版本的相关内容!

  下面是MongoDB2.4版本的一些主要功能点:

  1.Hash-basedSharding

  2.CappedArrays

  3.TextSearch(Beta)

  4.GeospatialEnhancements

  5.FasterCounts

  6.WorkingSetAnalyzer

  7.V8JavaScriptengine

  8.Security

  Hash-basedSharding:与原来按范围做sharding相对,MongoDB2.4增加了基于Hash的分片策略选择。这样可以更轻松地实现数据在各节点的均匀分布。当你对MongoDB单条记录的访问比较随机时,可以考虑采用这种模式。    CappedArrays:此版本还提供了对Array类型截断操作。在使用$push操作符向一个Array中添加数据时,你可以再通过新增的$slice操作符指定将这个Array进行指定长度的截断。这样可以让一个Array保持在一个固定的长度。在此操作中,你还可以指定一个排序方法,在截断前将Array先进行排序,截取排序后的头或尾来。

  Hash-basedSharding:与原来按范围做sharding相对,MongoDB2.4增加了基于Hash的分片策略选择。这样可以更轻松地实现数据在各节点的均匀分布。当你对MongoDB单条记录的访问比较随机时,可以考虑采用这种模式。

  CappedArrays:此版本还提供了对Array类型截断操作。在使用$push操作符向一个Array中添加数据时,你可以再通过新增的$slice操作符指定将这个Array进行指定长度的截断。这样可以让一个Array保持在一个固定的长度。在此操作中,你还可以指定一个排序方法,在截断前将Array先进行排序,截取排序后的头或尾来。

  TextSearch:全文索引是此次改造最大的功能改进点,目前支持15种语言的全文索引,详情可见这篇博文.

  GeoCapabilities:MongoDB2.4引入了GeoJSON的支持,GeoJSON能够提供更精确的地理位置索引。

  FasterCounts:MongoDB2.4对Count操作进行了各式各样的优化,使得在很多场景下Count操作能够比过去更快。比如在b-tree的一个分支中,如果第一个元素和最后一个元素都在count条件满足的范围内,那么中间的元素肯定都在此范围内,就不再做挨个的遍历操作了。

  WorkingSetAnalyzer:容量规划一直是使用MongoDBcluster时需要特别关心的一件事。在2.4版本中,MongoDB提供了一个分析模块,可以让你实时查看到当前的资源使用状况。通过这一模块,你能够知道过去15分钟内MongoDB需要的内存页数,通过对这个数据进行持续监控,你能够及时发现内存不够用的趋势,并着手进行相应的扩容和调整。

  NewV8Engine:MongoDB2.4中,将内部的Javascript引擎切换到了GoogleChrome使用的V8引擎上,V8引擎的引入,可以有效提升MongoDB的并发性能。

  Security:MongoDB2.4中增加了两个方面的案例性增强,引入了KerberosAuthentication和RoleBasedAccessControl两种机制.Kerberos是MongoDB企业版的安全机制,能够支持企业级系统的权限认证。RoleBasedAccessControl允许更细粒度的权限管理。

  本版本一共进行了数百项改进(692项),本文当然无法一一列举,详细的列表你可以在changelog中进行查看。

  MongoDB2.6全面增强了核心服务器,引入了新的开创性的自动化工具、重要的企业特性等等。

  MongoDB2.6版本的主要改进包括:

  1.重写了整个查询执行引擎,以提升可扩展性。

  2.引入索引交集(indexintersection),这是MongoDB构建复杂的查询计划的第一步。

  3.MongoDB管理服务(MMS),提供了备份和按时间点恢复功能,使得开发者可以在云端或本地更方便地管理MongoDB。

  4.安全性增强:引入了LDAP、x.509和Kerberos验证机制以及TLS加密

  5.分析功能增强

  6.代码库更易维护,更容易实现新的功能

  MongoDB是当前非常流行的文档型NoSQL数据库。MongoDB3.0该版本在性能和扩展性方面都有非常巨大的提升,还提供了一个强大、灵活且易于操作的管理系统,这一切标志着MongoDB将进入一个全新的发展阶段。

  MongoDB3.0最重要的改进是在存储层进行的改进,刚收购的WiredTiger存储引擎已成为MongoDB的内建数据库。WiredTiger不仅为MongoDB带了文档级锁的并发控制和高效的文档压缩功能,且自身性能也有了重大的提升,从而使得MongoDB提升了7-10倍的写操作性能、降低了80%的存储占用空间、降低了高达95%操作开销、支持高达50个副本集。

#p#分页标题#e#

 MongoDB3.0最重要的改进是在存储层进行的改进,刚收购的WiredTiger存储引擎已成为MongoDB的内建数据库。WiredTiger不仅为MongoDB带了文档级锁的并发控制和高效的文档压缩功能,且自身性能也有了重大的提升,从而使得MongoDB提升了7-10倍的写操作性能、降低了80%的存储占用空间、降低了高达95%操作开销、支持高达50个副本集。

  WiredTiger是一个高性能、可扩展性、支持压缩和文档级锁的NoSQL存储引擎,其设计充分利用了现代硬件发展的趋势,如高缓存、多线程的体系架构,还利用了技术研究成果和丰富的商业经验。此外,WiredTiger完全兼容原先的存储引擎MMAP(当前为MMAPv1)。同时,MMAP在集合级别的并发控制以及日志服务等方面也得到了增强。

  MongoDB的工程部总监MichaelCahill曾针对收购WiredTiger的事件评论到:

  创建WiredTiger旨在提供新思路下的数据管理平台和创建高性能的软件,以应对来自世界上要求最苛刻的各种应用的挑战。MongoDB一直影响着他们,WiredTiger能够加入MongoDB庞大的社区是一个发展的好机会,从而使得WiredTiger能够很好地帮助世界各地的各行各业和各种规模的组织。

  MongoDB3.0带来了可扩展性的新存储架构,并同时使用了MMAPv1和WiredTiger两种存储引擎。MongoDB3.0提供了可插入式存储引擎API,使得MongoDB能够非常简单地集成其它存储引擎和运行在内存、可信数据库环境、HDFS、特殊的优化硬件环境等各种环境中。

  此外,该版本还带来了企业级的OpsManager管理工具,该工具简化了MongoDB的管理。同时,还提供了OpsManagerAPI,开发者使用该API能够非常容易地将OpsManager集成到现有的监控、备份、管理等工具中。

  MongoDB3.0是一个里程碑意义的版本,它带来了多方面的改进,包括性能、灵活性、易用性、管理的简单性、运行成本等。MongoDB3.0消除了性能瓶颈,使得MongoDB能够适应更广泛的应用,其将成为其他众多数据库的强大竞争者。但是,这只是一个开始,MongoDB团队仍将继续加强MongoDB的相关功能,如WiredTiger的高级功能日志结构的合并树(LogStructuredMergeTrees)、为分布式文档模型实现一个事务系统、继续加强OpsManager的功能、增强查询语言和工具。

  DB-Engines的2014年度数据库排名显示,MongoDB已成为世界上第五个著名的数据库。今年2月份的数据库排名显示,MongoDB已超越PostgreSQL且排名第四。当前,从初创公司至世界500强,有众多组织、公司在使用MongoDB来构建自己的核心应用,如ADP、Forbes、Expedia、Bosch、Metlife、Foursquare、eBay等。已有众多公司与MongoDB进行了合作,如Informatica、IBM、Rackspace、亚马逊、红帽以及英特尔等。

  MongoDB开发团队还表示,今年晚些时候,MongoDB还将包含一个自动化功能,允许开发者通过一个简单的界面来管理MongoDB副本集和分片集群。

  据悉,在下一个大版本MongoDB2.8中将包含了大量并发方面的改进,而2.6版本已经开始朝着这方面努力了,比如新增了文档级锁定特性等。

  小编结语:

  MongoDB一直在发展,让我们一起期待吧~~

    关键字:

在线提交作业