阅读更多

2顶
0踩

数据库

转载新闻 MongoDB 2.5 将提供新的查询引擎

2013-05-30 09:45 by 副主编 WnouM 评论(3) 有7730人浏览


MongoDB 2.5.0(开发版本)中,包含了一个新的查询引擎实现查询引擎主要的工作是通过查询条件,查询到匹配的数据。当然,这其中包括对索引的使用。

现有的查询引擎在MongoDB发布的4年以来基本没有进行什么变更。它最大的问题是缺乏扩展性,也没有查询优化的功能(我们知道,MongoDB的查询优化实际上是通过试错的方式来做的)。

在2.5.0版本中,查询引擎被完全重写,它包括三个独立的部分:

  • 一个语法树(AST:abstract syntax tree)模块,用于解析查询语句
  • 一个解析模块,将BSON的查询条件解析成AST
  • 一个完全重写的查询API层,其功能和现有的查询模块类似
本次改动主要是为后续的查询优化工作铺路,其中很重要的一个功能点,就是索引交集的实现。比如你的查询条件是 {a:5, b:6} ,而这时候你分别有a和b两个字段的独立索引。在现在的查询引擎下,MongoDB只能使用其中一个索引。比如找出所有a的值为5的记录,再逐条遍历,查询出b为6的值。(或者反过来查b的索引,再遍历出a为5的值)。索引交集功能则可以在现有的情况下,通过对a,b两个独立的索引求交集,直接获取到a=5,b=6的记录(目前的稳定版中,需要建一个联合索引才能实现)。除了普通索引外,这一功能还会扩展到地理位置索引,全文索引上。(比如获取所有在3.5公里以内,符合xxx条件的人)

另外利用新的查询引擎,还可以实现一些更高级的查询,比如查询出 a == b + c 的记录。以后你可以这样写:{ a : { $sum : [ “$b” , “$c” ] } })。这样的功能对新的查询引擎来说很容易实现。

新的查询引擎目前已经重写完成并且可以测试了。如果你有兴趣测试测试,可以下载最新的2.5.0版本试玩。

下载地址:http://mongodb.org/downloads

相关代码都在Github上面:


Via blog.mongodb.org & NoSQLFan
  • 大小: 9.4 KB
来自: NoSQLFan
2
0
评论 共 3 条 请登录后发表评论
3 楼 sls0919 2013-06-05 11:07
优化后可以减少内存中的索引量了
2 楼 witcheryne 2013-05-30 10:40
保持关注,坐等稳定版本。
1 楼 dk-deathknight 2013-05-30 10:03
期待稳定版本!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • MongoDB集成:如何将MongoDB与其他系统集成

    随着互联网信息化、云计算的发展,越来越多的人开始接受了“数字化”这一新时代的理念,从而对传统的静态文档形式数据不再满足需求。于是在当前互联网信息架构下,更多的数据被记录、保存并呈现出来,使得搜索引擎的...

  • MongoDB 2.5 版本将提供新的查询引擎

    MongoDB 2.5.0 (开发版本)中,包含了一个新的查询引擎实现。查询引擎主要的工作是通过查询条件,查询到匹配的数据。当然,这其中包括对索引的使用。现有的查询引擎在MongoDB发布的4年以来基本没有进行什么变更。它...

  • 浅谈MongoDB数据储存引擎

    数据储存引擎是数据库管理系统中负责管理数据的存储、维护和恢复的关键组件。本文将介绍 MongoDB 的两种主要存储引擎:WiredTiger 和 MMAPv1,并比较它们的特点和性能差异,以便在实际应用中做出合适选择。

  • MongoDB

    mongodb

  • Flink CDC & MongoDB 联合实时数仓的探索实践

    2.5 MongoDB CDC Connector MongoDB CDC Connector 的实现原理,是利用了 Change Streams 的特性,将增、删、改等变更事件转换成 Flink 的 upsert 类型的变更流。在 Flink SQL 场景下,Planner 会加上 Changelog ...

  • MongoDB 添加、查询(条件查询、排序、分页、返回指定字段)、修改、删除数据、聚合aggregate

    MongoDB内部支持JavaScript语法,使用SpiderMonkey作为内部的JavaScript解释器引擎。

  • MongoDB:常见概念及问题总结

    MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。 MongoDB 文档类似于 JSON 对象的BSON格式存储(实质上是序列化的JSON,存储空间更小)。字段值可以包含其他文档,数组及文档数组。

  • 故障分析 | MongoDB 5.0 报错 Illegal instruction 解决

    去年七月的一声炮响,MongoDB Inc 给我们送来了 MongoDB 5.0 ,该版不仅带来了核心特性—时序集合,但若使用不慎还会给我们埋些小小的“坑”;如果您的环境正准备安装、试用或升级到 MongoDB 5.0 ,那不妨留步讨论下...

  • mongoDB查询操作(find)详解、例题帮助理解

    数据查询Find 导入的数据,可以点这里下载——>数据下载 find()函数 指定返回的键 db.[documentName].find ({条件},{键指定}) 数据准备:persons.json 1.1 查询出所有数据的指定键(name ,age ,country) db....

  • mongoDB使用数据(数据的插入,查询等介绍)

    浏览数据库 在shell中使用use函数,在命令后加上希望使用的数据库名称即可浏览数据库。 use 数据库名吗,进入到指定的数据库中。例如 use library。...MongoDB将保存数据的时候自动创建数据库,并且还区分大小写

  • Redis和MongoDB对比

    MongoDB 是一个基于分布式文件...Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。非关系型数据库。

  • 一、快速入门 MongoDB 数据库

    快速入门 MongoDB 数据库

  • MongoDB简介

    该手册介绍了MongoDB中的关键概念,介绍了查询语言,提供了操作和管理上的注意事项和过程,以及详尽的参考目录。 MongoDB提供数据库的社区版和企业版: 社区版本是开源且免费的。 企业版需要进一步付费,从而提供对...

  • MongoDB快速上手

    MongoDB简单快速上手

  • MongoDB数据库安装部署及警告优化

    MongoDB安装部署及警告优化 1.软件下载 3.6.13版本:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.13.tgz 4.0.14版本:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.14.tgz 官网文档...

  • mongoDb Find查询

    •Find 详讲 1.指定返回的键  db.[documentName].find ({条件},{键指定})  数据准备db.persion pretty() 方法以格式化的方式来显示... 1.1 查询出所有数据的指定键(name ,age ,country)  db.persons.fi...

  • 非关系型数据库MongoDB的特点及安装

    mongodb不一样,只要,业务上能保证,冷热...例如,对于网站的日志记录,可以根据日志的级别进行存储,Info级别日志存放在Info集合中,Debug级别日志存放在Debug集合中,这样既方便了管理,也提供了查询性能。......

  • MongoDB---数据类型,集合操作

    MongoDB 简介,数据类型,集合操作

  • yolo算法-电线杆数据集-1493张图像带标签-.zip

    yolo算法-电线杆数据集-1493张图像带标签-.zip;yolo算法-电线杆数据集-1493张图像带标签-.zip;yolo算法-电线杆数据集-1493张图像带标签-.zip

  • yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip

    yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip;yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip;yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip;yolo算法-电线杆数据集-7255张图像带标签-杆顶.zip

Global site tag (gtag.js) - Google Analytics