SQL/MYSQL

[MySQL] SET TRANSACTION 사용 방법 및 예시

Ant_U 2024. 11. 14. 09:50
728x90
반응형


SET TRANSACTION 문은 트랜잭션의 특성을 설정하는 SQL 구문입니다. 현재 세션이나 다음 트랜잭션에 대한 격리 수준(isolation level)을 지정할 수 있습니다.

기본 문법:

SET [GLOBAL | SESSION] TRANSACTION
    transaction_characteristic [, transaction_characteristic] ...


transaction_characteristic:
    ISOLATION LEVEL level
  | READ WRITE
  | READ ONLY

격리 수준(level)의 종류:
- READ UNCOMMITTED
- READ COMMITTED
- REPEATABLE READ (MySQL 기본값)
- SERIALIZABLE

주요 사용 예시:

1. 다음 트랜잭션의 격리 수준 설정

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
START TRANSACTION;
-- SQL 문장들
COMMIT;


2. 현재 세션의 격리 수준 설정

SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;


3. 전역 트랜잭션 격리 수준 설정

SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE;


4. 읽기 전용 트랜잭션 설정

SET TRANSACTION READ ONLY;
START TRANSACTION;
SELECT * FROM users;
COMMIT;



주의사항:
- GLOBAL 설정은 새로운 연결에만 적용됩니다.
- SESSION 설정은 현재 세션에만 영향을 미칩니다.
- 격리 수준이 높을수록 데이터 일관성은 향상되지만 성능은 저하될 수 있습니다.

SET TRANSACTION은 데이터베이스의 동시성 제어와 일관성을 관리하는 중요한 도구이며, 애플리케이션의 요구사항에 따라 적절한 격리 수준을 선택하는 것이 중요합니다.

728x90
반응형