Spring Data MongoDB关闭自动索引创建后保留@Indexed注解的影响
结论
只要你保持spring.data.mongodb.auto-index-creation = false配置(Spring Data MongoDB 3.0及以上版本默认就是关闭状态),保留@Indexed、@CompoundIndexes注解和完全删除这些注解的运行效果完全一致,不会产生任何额外副作用。
具体说明
- 这两类注解的唯一内置作用就是支撑自动索引创建流程:Spring Data MongoDB上下文初始化时,只有当自动索引创建开关打开的前提下,才会扫描
@Document实体类上的索引注解,执行对应的索引创建逻辑。开关关闭时,框架会直接跳过索引注解的扫描、解析步骤,这些注解不会触发任何额外操作,也不会引发和自动索引创建无关的错误。 - 保留注解不会影响业务运行:MongoDB的查询索引选择完全由服务端自主判断,和代码中的注解没有关联,也不会带来额外的性能开销。
现在很多团队都会选择保留这些注解作为实体字段的说明文档,方便后续维护人员快速了解索引设计,实际的索引变更则通过专门的数据库迁移工具来管控,这种做法完全符合官方弃用自动索引创建的设计初衷——避免生产环境自动创建索引引发的性能风险。
内容的提问来源于stack exchange,提问作者awgtek
相关产品推荐
相关产品推荐

