前几天看到一个关于 MongoDB 深入索引的PPT
MongoDB Indexing: The Details
仔细的从头看到尾, 里面有个关于Compound Indexes的Range and Equality的讲解,在ppt第129页,重新回顾下这个例子.向一个collection中插入 9 条数据,像下面这样:
然后给x 和 y进行联合索引
我们来进行这样的查找
可以看出 nscanned 非常高! 而 n只有 2 .官网上有这样一句话:
Ifnscannedis
much higher thannreturned,
the database is scanning many objects to find the target objects. Consider creating an index to improve this.
这里nscanned可以认为是扫描的记录数.n为返回的记录数
让我们配合PPT看下 nscanned:7是怎么来的:
这是MongoDB的B-tree索引树,因为x>=4 && y='c',所以先选择左枝搜索,左枝搜索了4/g 和 5/c ,(5/c符合条件),然后搜索 右枝 搜索了 7/e, 6/a ,8/c, 9/f ,(8/c符合条件). 任何 符合的 x都要被check一下.
延伸:
看了PPT后到此结尾了, 真遇到这种情况,效率可不乐观,于是稍微思考了下, y 在 这颗树中只有两个节点含有,也就是说 既然是 '与' 那就只要先把 y 筛选出来 ,搜索次数就大大减半了 .
我们在 y 上再进行Basic Indexes 的建立.
这样如果搜索时会先 搜索 y ,也就只有2次搜索了.看下实际情况:
正如预料的一样. 直接走 基本索引了.
分享到:
相关推荐
mongodb-indexes-app 简单的NodeJS应用程序,以学习如何在MongoDB中使用索引
MongoDB使用手册MongoDB使用手册MongoDB使用手册MongoDB使用手册MongoDB使用手册MongoDB使用手册MongoDB使用手册
Node应用程序构建——使用MongoDB和Backbone
《Node应用程序构建:使用MongoDB和Backbone》 源码,里面有git地址
Node.js是一套用来编写高性能网络服务器的JavaScript工具包。...《Node应用程序构建——使用MongoDB和Backbone》可以作为学习和掌握Node.js、Backbone.js和MongoDB的实践教程,也适合对这几种技术感兴趣的读者阅读
Node.js是一套用来编写高性能网络服务器的JavaScript工具包。...《Node应用程序构建——使用MongoDB和Backbone》可以作为学习和掌握Node.js、Backbone.js和MongoDB的实践教程,也适合对这几种技术感兴趣的读者阅读
spring data mongodb的demo程序,参考App.java中的调用方法,mongodb配置文件在resources目录下,整个项目使用maven,适合初学者学习。
这篇文章就是展示如何使用Java基于MongoDB和Spring Data创建一个CRUD应用。 Spring Data for MongoDB提供了一个类似于基于Sping编程模型的NoSQL数据存储。Spring Data for MongoDB提供了很多特性,它使很多MongoDB的...
MongoDB实现增删改查,java程序驱动,复杂查询,源代码示例
NoSql DB,MongoDB is a cross-platform document-oriented database program. It is issued under the Server Side Public License version 1, which was submitted for OSI certification but later withdrawn in ...
本课程是一套关于MongoDB应用开发的实战性教程,名为《深入浅出MongoDB应用实战开发(基础、开发指南、系统管理、集群及系统架构)》,教程侧重于讲解MongoDB的常用特性及高级特性,从实际开发的角度出发对MongoDB...
php操作MongoDB使用说明
mongodb安装包和compass mongodb安装包和compass mongodb安装包和compass 可在node学习过程中使用
随着NoSQL数据库越来越流行,MongoDB数据库作为NoSQL数据库中的领头羊,使用也越来越广泛。为此,FineReport V8.0版本提供了数据连接和数据集接口,可以通过开发一款可以连接和使用的MongoDB数据库的插件。
主要介绍了Thinkphp使用mongodb数据库实现多条件查询方法,修改了mongodb驱动文件来实现复合查询、多条件查询,需要的朋友可以参考下
MongoDB安装和使用全过程!windows平台下下载和安装Mongo数据库时总结的文档,分享给大家!
mongodb常用函数使用案例,主要是针对update,insert,find函数
MongoDB 的jar和源码,版本3.0.1
Spring Data MongoDB 中文参考文档和Springboot使用例子,其中还介绍了spring-data-mongodb 如何使用mongodb的全文检索。