我试图衡量这个简单查询执行所需的时间:
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> {
}
为索引查找花费这么长时间是正常的吗?
答案 0 :(得分:0)
正常。插入/更新到具有索引的数据库应该比简单地写入堆结构花费更多的时间,因为数据库必须维护顺序并平衡树(MongoDB使用B-Tree数据结构进行索引实现,就像任何其他数据库系统一样)。 要遵循:https://docs.mongodb.org/manual/core/indexes-introduction/#single-field
减少操作时间的最佳方法是在文档的单个字段上创建索引,您可能希望对其进行排序/搜索,而不是在许多非必需字段上编制索引。