首页 > 解决方案 > Mongodb C#是否应该在数据库的生命周期中只注册一次索引?

问题描述

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

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

标签: c#mongodbdatabase-indexesmongodb-indexes

解决方案


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

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

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


推荐阅读