save 함수 한 번당 트랜잭션 Proxy 로직을 태웁니다.
→ 그렇기 때문에, 기존 트랜잭션이 있는 경우 해당 트랜잭션에 참여하게 되지만, 이러한 경우에도 어느정도 비용이 발생합니다.
→ 그래서, 다 건 조회 시 매번마다 위 비용이 발생하기 때문에 시간이 오래 걸립니다.
반면, saveAll 함수 전체에 하나의 트랜잭션이 존재하고, save는 내부 메소드 호출로 트랜잭션 Proxy 로직을 태우지 않습니다.
→ 그렇기 때문에, 트랜잭션 관련 비용이 발생하지 않습니다.
→ 그래서, 다 건 조회 시에 적합합니다.
https://maivve.tistory.com/342
[Spring] JPA의 save와 saveAll의 성능 차이, 그리고 원인.
안녕하세요? 거두절미하고 바로 작성해보겠습니다. JPA에서 데이터를 DB에 INSERT하기 위해 사용하는 save와 saveAll이 있습니다. 이 두 가지의 큰 차이는 save는 1개를 저장하는 것이고, saveAll은 안에
maivve.tistory.com
즉 deleteAll, deleteInBatch, deleteAllInBatch
실제로 for문을 전부 돌며 select를 해오느냐, iterable로 하나하나 확인하며 지우느냐, 아니면 쿼리한번으로 모두 지우느냐 차이이다.
https://mingg123.tistory.com/117
[JPA] deleteAll(), deleteAllInBatch(), deleteInBatch() 차이점
1. deleteAll() userRepository.deleteAll(userRepository.findAllById(Lists.newArrayList(1L,3L))); userRepository.findAll().forEach(System.out::println); 우선 첫번째 Select문같은 경우에는 findAllById로 인해 in 절로 select를 해온 이후 1
mingg123.tistory.com
'사소한 Tip과 개념들' 카테고리의 다른 글
CORS (0) | 2022.12.13 |
---|---|
JavaScript 변수 var, let, const 차이점 (0) | 2022.12.11 |
JWT에 대해 알아보자! (0) | 2022.12.02 |
Java Primitive Type (원시 타입), Wrapper Class (래퍼 클래스) 차이점 (0) | 2022.11.30 |
깃 컨벤션 (0) | 2022.11.29 |