인프런 커뮤니티 질문&답변

jmlee님의 프로필 이미지

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

트랜잭션 옵션 소개

해당 강의 중 readOnly 관련 질문입니다!

작성

·

432

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]

안녕하세요.
리드온리 옵션 관련해서 강의를 듣다가 궁금해진건데

서비스에서 Select문 만을 호출하는 메서드가 @Transaction(readOnly = true)를 달고 있는 것과 트랜잭셔널 어노테이션을 아예 안달고 있는 것 중에 후자가 성능상 이점이 있나요?
아니면 해당 설명은 타입 수준에서 트랜잭션을 걸고 읽기 전용 트랜잭션 메서드를 따로 정의하기 위한 것인가요?

 

 

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. jmlee님

이 부분은 DB마다 결과가 다릅니다.

읽기 전용 트랜잭션을 적어주게 되면 DB에서 읽기만 사용한다고 인지해서 내부 최적화를 하는 경우도 있고, 읽기 전용 트랜잭션을 시작하기 때문에 트랜잭션을 시작한다는 네트워크 통신이 1번더 일어나서 성능에 더 불리한 경우도 있습니다. (트랜잭션 없는 단순 select대비)

그래서 이 부분은 DB마다 다르므로 성능 테스트를 하고 결정해야 합니다.

감사합니다.

jmlee님의 프로필 이미지

작성한 질문수

질문하기