使用sureIndex在MongoDB中动态创建索引是正常的做法。
还是我需要预先创建索引,然后每次我请求数据库时都不要调用sureIndex?
答案 0 :(得分:0)
不推荐使用EnsureIndex(请参见docs)。 Creating an index在计算上很昂贵,并且会在过程完成时阻止数据库活动。您可以在后台运行构建,但是负载仍可能影响系统性能。一个副本集可以单独删除每个集群成员,并以独立模式构建索引,以确保索引构建不会影响整体集群性能。
因此,请一次离线构建索引,并请记住,索引不是免费的,并且会由于每个索引在插入或更新时都需要执行额外的写操作而导致写入扇出。