반응형
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은 데이터베이스의 동시성 제어와 일관성을 관리하는 중요한 도구이며, 애플리케이션의 요구사항에 따라 적절한 격리 수준을 선택하는 것이 중요합니다.
반응형
'SQL > MYSQL' 카테고리의 다른 글
[MySQL] SET sql_log_bin 사용 방법 및 예시 (1) | 2024.11.20 |
---|---|
[MySQL] RESET BINARY LOGS AND GTIDS 사용 방법 및 예시 (0) | 2024.11.19 |
[MySQL] PURGE BINARY LOGS 사용 방법 및 예시 (0) | 2024.11.18 |
[MySQL] XA Transaction 사용 방법 및 예시 (1) | 2024.11.15 |
[MySQL] LOCK TABLES, UNLOCK TABLES 사용 방법 및 예시 (0) | 2024.11.13 |
[MySQL] LOCK INSTANCE FOR BACKUP, UNLOCK INSTANCE 사용 방법 및 예시 (0) | 2024.11.12 |
[MySQL] SAVEPOINT, ROLLBACK TO SAVEPOINT, RELEASE SAVEPOINT 사용 방법 및 예시 (0) | 2024.11.11 |
[MySQL] 트랜잭션 COMMIT, ROLLBACK 사용 방법 및 예시 (1) | 2024.11.08 |