为什么我的 MongoDB 查询真的很慢?

Mar*_*ine 10 database query mongodb

我在工作中继承了一个大型 MongoDB 服务器,并负责弄清楚为什么针对它运行的查询如此缓慢。DB 包含大量记录(大约 10^9)并占用大约 300 GiB。起初,我认为原始记录数可能是罪魁祸首,所以我在适当的字段上设置了索引。它对搜索数据库中的条件的查询有很大帮助,但对于没有匹配项的查询需要 80-90 分钟。关于如何解决这个问题的任何想法?

小智 5

似乎您缺少一个重要的索引,特别是因为没有匹配项的查询比具有匹配项的查询花费的时间要长得多。它是什么类型的查询?也许你需要一个复合索引?您是否将其where用作查询的一部分?

我不是 MongoDB 的专家,但 80-90 分钟绝对不正常。我不知道 MongoDB 对 Arenstar 来说“听起来像”什么,但它已被证明可以处理数十亿个文档(TB 级数据)


Are*_*tar -4

MongoDb 是 webscale.. 抱歉不得不这么说..

基于范围扫描,没有匹配可能需要一段时间???

我会把它分解一下.. Mongo 听起来不像是一个处理 300GB 的数据库,而且可能还不够成熟,不知道它如何处理大量数据。

你使用 Mongo 的原因是什么?

  • 有很多公司使用 mongodb。300g 是可行的,问问 foursquare、wordnik 和 boxedice 的人,他们有大量数据。如果有的话,索引是不正确的。在你删除数据库并用其他东西替换它之前,我会检查这些。 (8认同)