0

我试图测量执行这个简单查询需要多长时间:

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> {
}

花这么长时间进行索引查找是否正常?

4

1 回答 1

0

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

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

于 2016-03-23T05:32:40.083 回答