Mysql DB의 경우 루프 + save()
, saveAll()
속도 차이가 100배 가량 났다.
// 35000 ~ 40000 millis
pricePerMinuteDto.getPriceHashMap().forEach((k,v) -> {
mysqlRepository.save(...)
);
});
// 100 ~ 400 millis
mysqlRepository.saveAll(pricePerMinuteDto.getPriceHashMap().entrySet().stream()
.map(entry -> new PriceInfoMysql(...)
)
.collect(Collectors.toList())
);
하지만 Redis 의 경우 유의미한 차이가 안남
// 초기
readValue.getFields().forEach((k, v) -> {
redisRepository.save(new PriceInfoRedis(...));
});
// 변경
redisRepository.saveAll(
readValue.getFields().entrySet().stream().map(
entry -> new PriceInfoRedis(...))
.collect(Collectors.toList())
);