以最小的性能影响升级 MONGO 2dsphere 索引版本的最佳策略



我们最近从 mongo 3.0 升级到 3.2该应用程序大量使用 2dsphere 索引,该索引仍处于 2.0 版。我们希望将此 2dshpere 索引版本升级到 3.0,以利用它带来的性能优势。

但是需要执行此操作的集合有超过 1000 万个节点,并且该应用程序是一个流量很大的应用程序,我们无法承受长期影响。

我们应该采取什么策略来完成这项工作,同时将对实时流量查询的性能影响降至最低。

建议的解决方案:

1) Create new 2dshpere index in background with version 3.0
2) After above is done, remove old 2dsphere index

请建议相同或上述的最佳解决方案是针对此用例可以做的最好的解决方案。

我发布了我自己的答案,因为我们使用的东西对我们来说效果很好。如果有的话,很想听到更好的答案。

我们首先在后台创建了版本 3 索引。这样两个索引就并行存在。

 db.goibibocms_nodes.createIndex({"fieldname":"2dsphere","background":1,"version":3},{"2dsphereIndexVersion":3})

然后我们删除了版本 2 索引。

 db.goibibocms_nodes_v2.dropIndex("old index name")

当这些指数创建和下降发生时,它运行良好,没有任何性能降级。

最新更新