Optimizing MongoDB Compound Indexes(emptysquare.net)
emptysquare.net
Optimizing MongoDB Compound Indexes
http://emptysquare.net/blog/optimizing-mongodb-compound-indexes/
3 comments
What should be added to this is the ability to tell Mongo to return an error if your query requires a table scan. That one configuration item can be the difference between a request returning an error and a whole site going down for an extended period.
There is a config setting for that
notablescan = true
http://docs.mongodb.org/manual/reference/configuration-optio...Right I was saying that the author should add that to his article. Its a very valuable configuration item and anytime your dealing with optimizing indexes its worth enabling.
You can ask it to explain what it did, just like you'd ask for the last error. Then in your app enforce whatever rules related to indexes you wish.
explain actually runs the query. From http://www.mongodb.org/display/DOCS/Explain :
Note that explain runs the actual query to determine the result. If the query is slow, the explain will be slow too.Is MongoDB actually able to combine 2 or more indices?
No - it can only use one for a given query. But a compound index like the ones I describe in the post can index many fields.
Yes of course, but it's kinda slow if you have to maintain one compound index for each possible query you're going to run, that's why I was asking.
Nope, you can use the compound index 'a,b,c' to query over the following fields:
a
a.b
a,b,c
The manual actually explains it like that.You may be interested in this:
https://jira.mongodb.org/browse/SERVER-3071
It's index intersection, and it's scheduled for 2.3.1 which is the next next dev release. I'm hoping it makes it in for 2.4.
https://jira.mongodb.org/browse/SERVER-3071
It's index intersection, and it's scheduled for 2.3.1 which is the next next dev release. I'm hoping it makes it in for 2.4.
http://chemeo.com/doc/technology
(Search for "Indexing For High Speed Search" to skip non MongoDB related information).