@Transactional(readOnly = true)는 항상 성능에 좋을까?
"@Transactional(readOnly = true)를 사용하면 성능이 좋아진다."라는 말들을 들어봤을 것이다.그렇다면 왜 성능이 좋아지는 걸까? 그리고 항상 좋을까?에 대해 이번 포스팅에서 알아보려한다.JPA, RDBMS 둘다 최적화가 이뤄지기 때문에 각각 어떤 성능 최적화가 이뤄지는지 알아볼 것이다.(참고로 RDBMS는 MySQL 8.0 버전에 대해 다룬다.)JPA 수준의 최적화일반 트랜잭션의 경우 트랜잭션이 커밋될 때 JPA는 FlushMode.AUTO가 기본값이기 때문에 영속성 컨텍스트를 자동으로 플러시한다.하지만 @Transactional(readOnly=true)로 설정하면 Hibernate가 FlushMode를 MANUAL로 설정하여명시적으로 flush를 호출하지 않는 이상 flush가..