Mongodb Spring数据:对索引字段的查询速度慢?

时间:2016-03-23 03:58:01

标签: java mongodb spring-data-mongodb querydsl spring-mongodb

我试图衡量这个简单查询执行所需的时间:

companyRepository.findOne(companyId); // took 300ms

这是我使用的存储库类:

package fn.repository;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.querydsl.QueryDslPredicateExecutor;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

import fn.model.Company;

@RepositoryRestResource(exported = false)
public interface CompanyRepository extends MongoRepository<Company, String>, QueryDslPredicateExecutor<Company> {
}

为索引查找花费这么长时间是正常的吗?

1 个答案:

答案 0 :(得分:0)

正常。插入/更新到具有索引的数据库应该比简单地写入堆结构花费更多的时间,因为数据库必须维护顺序并平衡树(MongoDB使用B-Tree数据结构进行索引实现,就像任何其他数据库系统一样)。 要遵循:https://docs.mongodb.org/manual/core/indexes-introduction/#single-field

减少操作时间的最佳方法是在文档的单个字段上创建索引,您可能希望对其进行排序/搜索,而不是在许多非必需字段上编制索引

相关问题