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 ツリー データ構造を使用します)。従う: https://docs.mongodb.org/manual/core/indexes-introduction/#single-field

操作時間を短縮する最善の方法は、多くの不要なフィールドにインデックスを作成するのではなく、ドキュメントの単一のフィールドにインデックスを作成することです

于 2016-03-23T05:32:40.083 に答える