[英]Java Spring boot Mongodb taking too much time to retrieve results
我的 MongoDB 僅包含 3.8k 個文檔,並且大部分字段都已編入索引。 此外,我通過的條件也被索引。 但是獲取這些結果文檔需要花費 5 分鍾以上的時間,這些文檔總共可能是 2k。
Java 代碼:
Query query = query(where(DATE_TIME).gte(startDateLocal).andOperator(where(DATE_TIME).lte(endDateLocal)))
.with(Sort.by(Order.by("_id")));
query.fields().exclude(CarMakerDetailedSpecs);
addDefaultFilter(query);
List<CarMaker> CarMakerItems = mongoTemplate.find(query, CarMaker.class);
return CarMakerItems ;
結果查詢:
{ "dateTime" : { "$gte" : { "$date" : 1484247600000}}, "$and" : [{ "dateTime" : { "$lte" : { "$date" : 1580324400000}}}], "carMaker" : { "$in" : ["Toyota", "Honda"]}} fields: Document{{carMaker.detailedSpecs=0}}
有趣的是,python 中的相同查詢速度足夠快,可以立即獲得結果。 那么,驅動程序問題可能存在嗎? 因為另一個人也在 這里抱怨或者我錯過了什么? 謝謝!
我正在使用 Java Spring 啟動 2.2.4.RELEASE,Mongodb。
我不知道@Query有什么特別之處,但令人驚訝的是,使用它可以將時間縮短到幾秒鍾。
@Query(value= "{" +
" \"dateTime\": {" +
" \"$gte\": {" +
" \"$date\": ?0" +
" }" +
" }," +
" \"$and\": [" +
" {" +
" \"dateTime\": {" +
" \"$lte\": {" +
" \"$date\": ?1" +
" }" +
" }" +
" }" +
" ]," +
" \"carMaker\": {" +
" \"$in\": [" +
" \"Toyota\"," +
" \"Honda\"" +
" ]" +
" }" +
"}",
fields =
" {" +
" carMaker.detailedSpecs=0" +
" }" +
);
List<CarMaker> findAllCarsByStartAndEndDate(LocalDate startDateLocal, LocalDate endDateLocal);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.