自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MongoDB 2.5版本將提供新的查詢引擎

數(shù)據庫 其他數(shù)據庫 MongoDB
MongoDB 2.5.0 (開發(fā)版本)中,包含了一個新的查詢引擎實現(xiàn)。查詢引擎主要的工作是通過查詢條件,查詢到匹配的數(shù)據。當然,這其中包括對索引的使用?,F(xiàn)有的查詢引擎在MongoDB發(fā)布的4年以來基本沒有進行什么變更。它最大的問題是缺乏擴展性,也沒有查詢優(yōu)化的功能(我們知道,MongoDB的查詢優(yōu)化實際上是通過試錯的方式來做的)。

MongoDB 2.5.0 (開發(fā)版本)中,包含了一個新的查詢引擎實現(xiàn)。查詢引擎主要的工作是通過查詢條件,查詢到匹配的數(shù)據。當然,這其中包括對索引的使用?,F(xiàn)有的查詢引擎在MongoDB發(fā)布的4年以來基本沒有進行什么變更。它***的問題是缺乏擴展性,也沒有查詢優(yōu)化的功能(我們知道,MongoDB的查詢優(yōu)化實際上是通過試錯的方式來做的)。

在2.5.0版本中,查詢引擎被完全重寫,它包括三個獨立的部分:

  • 一個語法樹(AST:abstract syntax tree)模塊,用于解析查詢語句
  • 一個解析模塊,將BSON的查詢條件解析成AST
  • 一個完全重寫的查詢API層,其功能和現(xiàn)有的查詢模塊類似

本次改動主要是為后續(xù)的查詢優(yōu)化工作鋪路,其中很重要的一個功能點,就是索引交集的實現(xiàn)。比如你的查詢條件是 {a:5, b:6} ,而這時候你分別有a和b兩個字段的獨立索引。在現(xiàn)在的查詢引擎下,MongoDB只能使用其中一個索引。比如找出所有a的值為5的記錄,再逐條遍歷,查詢出b為6的值。(或者反過來查b的索引,再遍歷出a為5的值)。索引交集功能則可以在現(xiàn)有的情況下,通過對a,b兩個獨立的索引求交集,直接獲取到a=5,b=6的記錄(目前的穩(wěn)定版中,需要建一個聯(lián)合索引才能實現(xiàn))。除了普通索引外,這一功能還會擴展到地理位置索引,全文索引上。(比如獲取所有在3.5公里以內,符合xxx條件的人)

另外利用新的查詢引擎,還可以實現(xiàn)一些更高級的查詢,比如查詢出 a == b + c 的記錄。以后你可以這樣寫:{ a : { $sum: [ “$b” , “$c” ] } })。這樣的功能對新的查詢引擎來說很容易實現(xiàn)。

新的查詢引擎目前已經重寫完成并且可以測試了。如果你有興趣測試測試,可以下載***的2.5.0版本試玩。【下載】

相關代碼都在github上面:

來源:blog.mongodb.org

責任編輯:honglu 來源: NoSQLFan
相關推薦

2009-07-08 16:45:07

Servlet 2.5

2009-07-16 16:53:29

Jython 2.5

2009-07-07 02:15:03

Servlet2.5

2012-09-28 09:58:35

Outlook 201Office 2013

2015-07-17 13:27:16

MySQL 5.7

2010-01-05 14:35:48

Ubuntu 9.10

2009-12-18 13:43:07

Ruby 1.9版本

2015-07-17 13:43:09

MySQL 5.7

2015-07-17 13:45:12

MySQL 5.7

2009-12-28 10:16:48

Groovy 1.7

2015-07-17 13:59:33

MySQL 5.7

2009-02-25 08:38:01

Windows 7上網本

2012-09-07 14:18:15

MongoDB 2.2

2012-11-16 09:50:32

Windbg

2023-10-09 08:33:50

過濾和排序分布式搜索

2022-06-27 06:02:27

geopandas開發(fā)Python

2012-08-01 13:30:30

微軟Office 2013

2010-06-08 09:45:27

openSUSE 11

2012-05-07 23:45:54

FantomJavaJVM

2016-01-21 11:05:52

ES6JavaScript新特性
點贊
收藏

51CTO技術棧公眾號