首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >生产代码中的Mongoose索引

生产代码中的Mongoose索引
EN

Stack Overflow用户
提问于 2013-01-16 00:55:25
回答 3查看 30.5K关注 0票数 138

根据MongooseJSMongoDB/Node.js的Mongoose documentation

当您的应用程序启动时,

会自动为您的模式中定义的每个索引调用ensureIndex。虽然适合于开发,但建议在生产中禁用此行为,因为创建索引可能会导致显著的性能影响。通过将模式的autoIndex选项设置为false来禁用该行为。

这似乎指示在部署之前从mongoose中删除自动索引,以优化Mongoose,而不是在应用程序启动时指示Mongo去搅动所有索引,这似乎是有意义的。

在生产代码中处理索引的正确方法是什么?也许外部脚本应该生成索引?或者,如果单个应用程序是集合的唯一读取器/写入器,则ensureIndex可能是不必要的,因为它将在每次发生数据库写入时继续索引?

编辑:作为补充,MongoDB为如何建立索引提供了良好的documentation,但没有说明为什么或何时应该执行显式索引指令。在我看来,索引应该由编写器应用程序在具有现有索引的集合上自动保持最新,并且ensureIndex实际上更多是一次性的事情(在应用新索引时完成),在这种情况下,Mongoose的autoIndex在正常的服务器重启下应该是无操作的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14342708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档