1) 락 범위 최소화
세분화된 락 사용
예: 전체 테이블이 아닌 개별 행(row)에 대한 락 사용
락을 잡는 시간을 최소화
락이 필요할 때만 걸고, 즉시 해제
2) 락 없는 동시성 제어 기법 활용
Optimistic Locking (낙관적 락)
먼저 데이터를 읽고, 변경이 없을 경우 업데이트 진행
충돌 발생 시 다시 처리
Read-Write Lock (읽기-쓰기 락)
여러 개의 읽기 작업을 동시에 수행할 수 있도록 Read 락과 Write 락을 분리
3) 데드락 방지
락 획득 순서를 정해 교착 상태 방지
타임아웃 설정을 통해 교착 상태 발생 시 자동 해제
4) 비동기 처리 및 병렬성 활용
병렬 처리 또는 비동기 방식(예: CompletableFuture, Future)을 활용해 대기 시간을 줄임
5) 데이터베이스 튜닝
인덱스 최적화, 인덱스를 활용해 불필요한 레코드 접근을 최소화
트랜잭션 크기 줄이기, 짧은 트랜잭션을 유지해 락 유지 시간을 최소화
'Etc' 카테고리의 다른 글
| 오프라인 환경에서 Eclipse & SVN 플러그인 설치 (0) | 2025.11.09 |
|---|---|
| MDD dynamic query (0) | 2025.11.09 |
| Citrix Secure Access (0) | 2025.10.26 |
| Design Patterns (0) | 2025.10.26 |
| PostgreSQL FDW (0) | 2025.10.12 |