Mongodb C# 索引应该在数据库的生命周期内只注册一次吗?

Mongodb C# Should indexes be registered once only in a database's lifetime?

这个问题可能很愚蠢,但是尽管在 mongodb 中有很多关于创建索引和使用它们的文档,但我还没有找到可以说明何时应该设置索引的信息。 例如,在文档中非常精确地指出 bson class 映射应该在连接到数据库之前设置一次。 但是,我只想确定这一点:有人可以向我确认一下索引是否只在数据库的生命周期内设置一次吗?

我目前正在做的是运行在每次需要数据访问代码的服务初始化时注册索引的代码。但这是不是最好的方法?

检查是否在每次服务启动时创建索引是一种昂贵的方法。大多数时候,您的索引已经存在,而您是在从数据库中询问一个数据库不需要回答的问题。浪费资源。

检查索引并跟踪需要和不需要的内容的理想方法是在您的部署管道(CI/CD 管道)中。因此,这不仅仅是检查您需要哪些索引以及它们是否存在的问题。你也应该反其道而行之,删除你不再需要的索引。

此外,请确保您没有为每个请求都创建新的 MongoClient 对象;使用依赖注入。