반응형
일반적으로 데이터베이스 트랜잭션은 읽기 또는 쓰기 작업 중 하나 이상을 수행합니다. 트랜잭션이 쓰기 작업을 수행할 때는 데이터베이스에서 일관된 상태를 유지하기 위해 여러 작업이 순차적으로 실행되어야 합니다. 따라서 트랜잭션 범위 내에서 작업이 완료될 때까지 다른 트랜잭션에서 해당 데이터에 대한 읽기 작업이 차단됩니다. 이러한 이유로 읽기 작업이 많은 메서드에서 트랜잭션을 읽기 전용으로 설정하면, 해당 메서드에서는 트랜잭션을 시작하지만 쓰기 작업이 수행되지 않으므로 여러 트랜잭션에서 동시에 데이터를 읽을 수 있습니다.
@Transactional(readOnly=true)를 사용하면 Spring은 트랜잭션을 읽기 전용으로 설정하여 데이터베이스에서 읽기 작업을 수행하는 동안 다른 트랜잭션에 영향을 미치지 않도록 합니다. 이를 통해 데이터베이스에서 읽기 작업의 성능을 향상시킬 수 있습니다. 또한, 트랜잭션을 읽기 전용으로 설정하면 해당 메서드에서 예외가 발생하더라도 롤백되지 않으므로, 트랜잭션의 성능을 더욱 향상시킬 수 있습니다.
반응형
'Spring' 카테고리의 다른 글
Gradle (0) | 2023.03.29 |
---|---|
[Spring] mapStruct에서 LocalDateTime을 epoch Milli로 변경하는 방법 (0) | 2023.03.24 |
[JAVA] JAVA에서 윈도우, 우분투 NTP 서버 설정 변경하는 방법 (0) | 2023.03.22 |
[Spring] Springdoc Swagger 그룹, 정렬, 카테고리 접기 (0) | 2023.03.21 |
[Spring] Springdoc swagger에서 글로벌 header를 설정하는 방법 (0) | 2023.03.10 |
댓글