MySQL Transaction Read Only

Louie·2023년 2월 24일
0

서론

  • 오늘은 MySQL의 읽기 전용 트랜잭션 기능에 대해 정리해 보겠습니다.

SELECT 쿼리만 실행 가능하다.

  • 아래와 같이 insert 쿼리를 실행하면 에러가 발생합니다.

트랜잭션 ID를 부여하지 않는다. (InnoDB 기준)

  • 트랜잭션 id는 데이터 변경(insert, update, delete)하거나 Lock을 사용하는 트랜잭션에만 필요하므로 읽기 전용 트랜잭션은 트랜잭션 id를 부여할 필요가 없기 때문입니다.
  • 따라서 읽기 전용 트랜잭션은 트랜잭션 ID가 부여되지 않아서 트랜잭션 ID 설정에 대한 오버헤드를 아낄 수 있습니다.

마무리

  • 추가로 해당 블로그처럼 Master - Slave 구조를 적용하여 @Transactional(readOnly = true)인 경우 Slave DB에 접근하고 @Transactional(readOnly = false)인 경우 Master DB에 접근하도록 구현할 수 있다고 합니다.

Reference

https://dev.mysql.com/doc/refman/8.0/en/innodb-performance-ro-txn.html

https://k3068.tistory.com/102

profile
백엔드 개발자를 준비하고 있는 Louie입니다.

0개의 댓글