Optimization Tips | Tip #25: Use compound indexes to make multiple queries fast
程序员文章站
2022-05-06 23:13:48
...
如果可以,多个查询时可以创建个混合索引.当然这个不是总是可以的,除非你多个查询时使用类似的参数.
试想,你的应用程序运行将进行这些查询:
正如你看到的,y在每个查询中都会出现,所以这个个非常好的索引候选者,z出现在第一次和第二次,w出现在第二次和第三次,所以任何其中的一个都可以作为索引的候选者.
这个查询将会尽可能的最大优化,其它两个查询将会使用部分索引进行查询.
如果三个查询运行次数相近,一个好的混合索引应该是
这样三个查询就会使用y作为标准索引,第二个和第三个能够使用w作为索引,中间那个查询将会全部命中索引.
你可以调用explain()来查看索引怎么在查询中使用的
试想,你的应用程序运行将进行这些查询:
正如你看到的,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
上一篇: c++ primer 4 数组和指针
下一篇: DOM 基础(一)