
🧩 1. 트랜잭션 & 락 (ACID / 격리 수준 / 동시성 문제)
구분 설명 대표 예시
| Atomicity | 트랜잭션은 전부 수행되거나 전혀 수행되지 않아야 함 | 예: 중간 실패 시 전체 롤백 |
| Consistency | 트랜잭션 전후에 데이터 무결성 유지 | FK/PK 제약조건 유지 등 |
| Isolation | 다른 트랜잭션 간 영향 차단 | 격리 수준 설정으로 구현 |
| Durability | COMMIT된 결과는 영구히 유지 | 시스템 장애 후에도 보존 |
트랜잭션 격리 수준 (낮 → 높):
- READ UNCOMMITTED → READ COMMITTED → REPEATABLE READ → SERIALIZABLE
동시성 이슈:
유형 설명
| Dirty Read | 다른 트랜잭션의 미확정값을 읽음 |
| Non-repeatable Read | 같은 행을 반복 조회 시 값이 바뀜 |
| Phantom Read | 조건에 맞는 새로운 행이 중간에 삽입됨 |
🔒 락 (Lock) 전략
종류 설명
| 낙관적 락 | 충돌 적다고 가정, 버전 비교 후 충돌 시 롤백 |
| 비관적 락 | 충돌 가능성 높음, SELECT ... FOR UPDATE 사용 |
🧮 2. 실행계획 (EXPLAIN) & 인덱스 활용
항목 설명
| EXPLAIN | SQL의 실행 순서, 인덱스 사용 여부 확인 |
| 인덱스 | 검색 속도 개선 도구, B-Tree 기본 |
| 사용 시기 | 자주 검색, 정렬, 조인되는 컬럼 |
| 피해야 할 패턴 | 함수 사용 (WHERE YEAR(date)=2024), 연산 포함된 조건 등 |
⚙️ 3. DDL vs DML, 제약조건
항목 설명 자동 COMMIT ROLLBACK
| CREATE / DROP / ALTER (DDL) | 구조 변경 | O | X |
| INSERT / UPDATE / DELETE (DML) | 데이터 조작 | X | O |
| TRUNCATE | 모든 행 삭제 (구조 유지) | O | X |
제약조건 키워드 요약
제약 설명
| PRIMARY KEY | 고유 + NOT NULL |
| UNIQUE | 중복 X, NULL 허용 |
| NOT NULL | 반드시 값 필요 |
| FOREIGN KEY | 참조 무결성 유지 |
| CHECK | 조건 만족 필요 |
'SQLD 공부' 카테고리의 다른 글
| SQLD 대비 고급 SQL 문법 (JOIN, Subquery, SET) (0) | 2025.07.03 |
|---|---|
| SQLD 2과목 요약: SQL 기본과 활용 (0) | 2025.07.03 |
| SQLD 2과목 핵심 개념 정리 (0) | 2025.06.17 |
| 데이터 모델과 SQL 개념정리 (0) | 2025.06.14 |
| 개념 정리 - SQLD 1과목: 데이터 모델링의 이해 (1) | 2025.06.13 |
