mongoDB在多键查找方面是否有效?



我正在评估MongoDB,来自Membased/memcached,因为我想要更多的灵活性。

当然,Membase在快速(多)键查找方面非常出色。

我喜欢MongoDB给我的额外选项,但它在做多键查找也快吗?我已经见过$or和$in运算符,我确信我可以用它来建模。我只是想知道它的性能是否与《Membase》相同。

用例,例如,Lucene/Solr返回20个product-id。在Couchdb中查找这些product-id以返回docs/适当的字段。

谢谢,基尔特•简•

对于您的用例,根据我的经验,我会说它是:我将一些分析方法黑入我的数据库,该数据库使用数千个id进行了许多$in查询,并且工作良好(这是一个黑客)。令我惊讶的是,在较低的毫秒区域,它工作得相当好。

当然,很难进行比较,而且-通常- 理论在性能方面是一个糟糕的伴侣。我想解决这个问题的最好方法是迁移一些测试数据并向系统发送一些查询。

使用MongoDB优秀的内置分析器,使用$explain,记住每个查询规则一个索引,查看日志,关注mongostat,并做一些基准测试。这不会花太长时间,而且会给你一个明确肯定的答案。如果您的查询结果很慢,那么这里和新闻组的人可能会有一些关于如何改进查询或索引的想法。

每个查询一个索引。有时认为查询多个键可以使用多个索引;这不是MongoDB的情况。如果你有一个在多个键上选择的查询,这是你想要的查询要有效地使用索引,那么复合键索引就是必要的。

http://www.mongodb.org/display/DOCS/Indexing +建议+和+ FAQ # IndexingAdviceandFAQ-Oneindexperquery。

关于索引,该页还有更多的信息。

底线是,如果你的索引在内存中,并且你正在使用复合键对你想要查询的列进行索引,那么Mongo将是非常好的。如果你的索引很差,那么你的性能就会受到影响。

最新更新