我们最近从 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
请为此用例建议最佳解决方案是相同或以上。
答案 0 :(得分:0)
我发布自己的答案,因为我们使用的效果很好。 如果有的话,我愿意听到更好的答案。
我们首先在后台创建了第3版索引。这样两个索引都是并行的。
db.goibibocms_nodes.createIndex({"fieldname":"2dsphere","background":1,"version":3},{"2dsphereIndexVersion":3})
然后我们删除了版本2索引。
db.goibibocms_nodes_v2.dropIndex("old index name")
当这些索引创建和下降发生时,它没有任何性能降级,而且很顺利。