본문 바로가기
Spring

[Spring JPA] 다건의 데이터 삭제시 성능 개선

by Apère 2023. 2. 19.
반응형
public interface MemberRepo extends JpaRepository<Member, Long>{

    void deleteAllByName(String name);

}

Spring JPA에서 공통함수를 이용하여 위의 코드와 같이 deleteAllByName을 생성 했을 때 성능 문제가 발생했습니다

 

JPA 특성상 해당 조건으로 먼저 Select 쿼리를 보낸후 리턴된 객체의 ID값으로 Delete 쿼리를 보내는데 건수가 많을 경우 성능에 이슈가 발생합니다

 

해결방법은 아래처럼 직접 쿼리를 작성해주시면 됩니다

 

public interface MemberRepo extends JpaRepository<Member, Long>{

    @Modifying
    @Query("delete from Member m where m.name = :name")
    void deleteAllByName(@Param("name") String name);

}

 

반응형

댓글