반응형
MySQL LOCK TABLES와 UNLOCK TABLES 사용법
LOCK TABLES란?
LOCK TABLES는 MySQL에서 테이블에 대한 접근을 제어하는 명령어입니다. 특정 테이블을 잠그면 다른 세션에서 해당 테이블에 접근하는 것을 제한할 수 있습니다.
기본 문법
LOCK TABLES 테이블명 [READ | WRITE]
- READ: 읽기 전용 잠금
- WRITE: 읽기/쓰기 모두 잠금
UNLOCK TABLES란?
UNLOCK TABLES는 LOCK TABLES로 설정한 잠금을 해제하는 명령어입니다.
기본 문법
UNLOCK TABLES
사용 예시
1. 단일 테이블 잠금
-- 테이블 잠금
LOCK TABLES employees WRITE;
-- 데이터 수정 작업 수행
UPDATE employees SET salary = salary * 1.1;
-- 잠금 해제
UNLOCK TABLES;
2. 다중 테이블 잠금
-- 여러 테이블 동시 잠금
LOCK TABLES
employees WRITE,
departments READ;
-- 데이터 처리 작업
INSERT INTO employees VALUES (...);
SELECT * FROM departments;
-- 잠금 해제
UNLOCK TABLES;
주의사항
1. LOCK TABLES 사용 시 반드시 필요한 경우에만 사용해야 합니다.
2. 잠금 시간은 최소화하는 것이 좋습니다.
3. WRITE 잠금은 해당 세션만 테이블에 접근 가능합니다.
4. READ 잠금은 다른 세션에서 읽기는 가능하지만 쓰기는 불가능합니다.
5. 잠금 작업 완료 후 반드시 UNLOCK TABLES를 실행해야 합니다.
활용 시나리오
-- 대량의 데이터 업데이트 시
LOCK TABLES orders WRITE;
UPDATE orders SET status = 'completed'
WHERE order_date < '2023-01-01';
UNLOCK TABLES;
이러한 테이블 잠금은 데이터의 일관성을 유지하고 동시성 문제를 해결하는데 도움이 되지만, 과도한 사용은 데이터베이스 성능에 영향을 줄 수 있으므로 신중하게 사용해야 합니다.
반응형
'SQL > MYSQL' 카테고리의 다른 글
[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] SET TRANSACTION 사용 방법 및 예시 (0) | 2024.11.14 |
[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 |
[MySQL] TABLE 문 사용 방법 및 예시 (0) | 2024.11.07 |