欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Optimization Tips | Tip #25: Use compound indexes to make multiple queries fast  

程序员文章站 2022-05-06 23:13:48
...
如果可以,多个查询时可以创建个混合索引.当然这个不是总是可以的,除非你多个查询时使用类似的参数.

试想,你的应用程序运行将进行这些查询:


正如你看到的,y在每个查询中都会出现,所以这个个非常好的索引候选者,z出现在第一次和第二次,w出现在第二次和第三次,所以任何其中的一个都可以作为索引的候选者.

我们要尽可能多的频繁的命中索引.如果上面的某个查询比其它的更重要或者说使用频率更高,我们索引应该尽量偏袒于它.比如说,试想第一个查询运行查过其它两个1000多次.我们应该这么建立索引:


这个查询将会尽可能的最大优化,其它两个查询将会使用部分索引进行查询.

如果三个查询运行次数相近,一个好的混合索引应该是


这样三个查询就会使用y作为标准索引,第二个和第三个能够使用w作为索引,中间那个查询将会全部命中索引.

你可以调用explain()来查看索引怎么在查询中使用的


(译者续: 有关Compound index可以参看官网 http://www.mongodb.org/display/DOCS/Indexes#Indexes-CompoundKeysIndexes )



原版书<<50 Tips and Tricks for MongoDB Developers>> 地址:http://oreilly.com/catalog/0636920019893

皮皮书屋下载地址http://www.ppurl.com/2011/05/50-tips-and-tricks-for-mongodb-developers.html

本书的所有翻译地址:http://blog.csdn.net/crazyjixiang/article/category/858638

翻译目的:MongoDB资料国内很少,书就更不必说了,借助对MongoDB的理解为大家做点贡献,如果有翻译有误的地方请指正,不能误入子弟,谢谢!

译者:Crazybaby