MongoDB范围查询的索引优化

我们知道,MongoDB的索引是B-Tree结构的,和MySQL的索引非常类似。你应该听过这样的建议:创建索引的时候要考虑到sort操作,尽量把sort操作要用到的字段放到你的索引后面。但是有的情况下,这样做反而会使你的查询性能更低。

MongoDB索引实战技巧

本文内容源自Kyle Banker 的 MongoDB In Action一书。主要描述了MongoDB索引相关的一些基础知识和使用技巧。

MongoDB索引内部实现

在数据库优化中,索引优化是非常重要也是每一个数据库使用者必须了解的。MongoDB的索引采用B Tree结构,除了其地理位置索引外,数据索引本质上和MySQL 的 BTree索引没有什么差别。下面是一个接近200页的PPT,对MongoDB读写操作相关的索引操作进行了图文讲解。生动而易于理解。如果你对数据库索引的实现原理感兴趣,可以仔细看看。

MongoDB 索引数据类型优化,节省60%内存

最近trunk.ly的工程师通过mongostat发现了大量的page fault,然后通过检查发现,他们的索引已经超出内存限制了(没有keep all index in RAM)。于是他们决定开始减小索引大小,通过测试得出了如下的数据,不同的数据类型的索引大小有2到3掊的差距。

图解 MongoDB 地理位置索引的实现原理

地理位置索引支持是MongoDB的一大亮点,这也是全球最流行的LBS服务foursquare 选择MongoDB的原因之一。我们知道,通常的数据库索引结构是B+ Tree,如何将地理位置转化为可建立B+Tree的形式,下文将为你描述。

10gen工程师讲数据库索引实现

MongoDB尽管在数据存在上与传统关系数据库很不一样,但是在索引构建上却几乎是与传统关系型数据库一致。主要是使用了B-tree作为索引结构。

MongoDB的索引使用及索引机制

MongoDB的索引使用基本和MySQL等关系型数据库一样。或者可以说,我理解的索引一直是凌驾于数据存储系统之上的另一层系统。所以各种结构迥异的存储都有相同或相似的索引实现及使用接口并不足为奇。

下面一篇Slide描述了MongoDB索引方面的一些相关知识,包括索引的实现方式(传统实用的B-tree),MongoDB索引的使用,提供的功能与接口。其中图文并茂的对索引的实现做了简单的描述。