`
holoblog
  • 浏览: 1224991 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:18897
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多
如果可以,多个查询时可以创建个混合索引.当然这个不是总是可以的,除非你多个查询时使用类似的参数.

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


正如你看到的,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









分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics