우리의 mongodb 아키텍처는 매주 데이터를 저장합니다. 매주 동일한 컬렉션 세트가있는 자체 db가 있습니다. 내가 순차적으로 12 시간 찾기를 실행 (이 경우)를병렬로 문지기 쿼리 속도를 높이고 ThreadPool을 사용 하시겠습니까?
...
for (MongoOperationDto week : allWeeks) {
results.addAll(repo.find(gid, week.db(), week.collection());
}
...
: 때때로 나는 12 개 서로 다른 데이터베이스 (한 몽고 서버의 모든) 이상 같은 쿼리를 실행 즉, 12 주 이상까지 데이터를 확인해야합니다. 내부 연결 풀에서 처리 할 것 같습니까? 12 개의 자바 쓰레드를 만들고 모든 쓰레드가 하나의 find를 실행한다면 이점이 있지 않겠는가? 어쩌면 좋아 :
public class FindTask {
@Autowired
MyMongoRepo repo;
@Async
public List<Result> doFindTask(long gid, MongoOperationDto week) {
return repo.find(gid, week.db(), week.connection());
}
}
어떤 방법이 실제로 빠른 또는 데이터를 검색에는 속도 차이가 없다?
테스트를 통해 확인하십시오. 자바 측에서 12 개의 스레드가'find()'를 수행하더라도 여전히 동일한 서버를 사용하고 있습니다 (그러나 성능상의 차이는 없습니다). 연결 풀링은이 *와는 전혀 관련이 없습니다. – Kayaman