해결된 질문
작성
·
192
0
안녕하세요 영한님 강의 항상 잘 보고있습니다.
강의를 보면서 Update는 Dirty Checking을 통해서 해라!(단건) 라고 이해를했는데요
궁금한 부분은 정말 단순하게 컨트롤러로 DB에 있는 어떤 값을 변경하는 API가 있다고 하면
해당 엔티티를 조회하고 이 엔티티에 값을 바꾸면
select 쿼리 한번 update 쿼리 한번이 나가게 되는데
다른 JDBCTemplate 이나 Mybatis 쓰면 update 쿼리한번이면 될텐데 라는 생각이 들더라구요
물론 DB에 데이터를 있는지 없는지 체크도 되는 이점도 있긴하겠지만
만약에 엄청 복잡해서 update를 하기위한 select를 해야하는 경우가 많다고 한다면
이부분이 성능에 미치는 영향이 크지는 않는건지랑 대비 이점?이 무엇인지 궁금합니다~
답변 1
1
안녕하세요. abc9023님
이렇게 한번 select 하는 것은 PK를 바로 찍어서 하나만 조회하는 것이기 때문에 성능에 영항은 미미합니다. 만약 이 성능 최적화가 필요하면 벌크 연산을 사용하면 됩니다.
JPA를 사용해도 벌크연산을 사용하면 select 없이 바로 update를 사용할 수 있습니다.
참고: JPA 기본편 - 벌크연산
더티 체킹 장점
예를 들어서 update 해야 하는 10가지 상황이 있다면 update 쿼리를 하나도 만들지 않아도 됩니다.
비즈니스 로직에서 update를 위한 별도의 repository.update 같은 부분을 호출하지 않아도 됩니다.
감사합니다.
감사합니다~