【发布时间】:2022-01-04 15:26:11
【问题描述】:
我想深入了解springframeworks mongodb是如何工作的
所以假设我的数据库中有一个索引,一个包含 2 个字段 a、b 的复合索引
现在这些是我写的查询,我想知道其中哪些会命中索引以及一些关于性能的想法,以及哪种是最好使用的类型
1. Query q = new Query()
query.addCriteria(Criteria.where(a).is("val"));
query.addCriteria(Criteria.where(b).is("val2"));
2. query.addCriteria(Criteria.where(a).is("val").andOperator(Criteria.where(b).is("val2")))
3. query.addCriteria(Criteria.where(a).is("val").and(b).is("val2"))
2 和 3 有什么区别。 所有这些变化都会达到正确的指数吗 一些相同的最佳实践
【问题讨论】:
-
开启 Spring Data MongoDB 的查询日志以检查有什么区别,并使用这些查询进行性能测量。
-
@Harshit 做到了,但它没有显示我们是否正在点击索引它打印数据库查询我如何找到该信息
-
如果你打开查询日志,那么它会记录查询,然后直接在该查询上使用 explain("executionStats") 来确定它是否使用索引。
-
确实这只是关于 MongoDB 查询性能,Spring Data 只是将 java 调用转换为 MongoDB 查询。
标签: java mongodb spring-data spring-data-mongodb