ACID는 트랜잭션의 일관성, 격리성, 지속성을 보장하는 데이터베이스 속성입니다.
두 개 이상의 데이터베이스 트랜잭션이 서로의 자원을 기다려 중단되는 상황이에요. 이는 시스템 성능 저하와 응답 지연을 초래할 수 있어요. 해결 방법으로는 타임아웃 설정이나 리소스 잠금 순서를 조정하는 방법이 있어요.
데이터베이스에서 트랜잭션이 동시에 실행될 때 데이터 일관성을 유지하기 위해 잠금을 설정해요. 이를 통해 다른 트랜잭션이 같은 데이터에 접근하는 것을 제한하여 충돌을 방지해요. 하지만 과도한 잠금은 성능 저하를 초래할 수 있어요.
트랜잭션 내에서 특정 시점으로 되돌릴 수 있는 지점을 설정하는 기능이에요. 이를 통해 복잡한 트랜잭션을 관리할 수 있고, 오류 발생 시 일부 작업만 롤백할 수 있어요. Savepoint를 활용하면 효율적인 오류 처리가 가능해요.
Transaction Isolation Levels
트랜잭션 격리는 데이터베이스에서 동시에 실행되는 트랜잭션 간의 상호작용을 제어하는 방법이에요. 격리 수준은 읽기 일관성, 작성 일관성, 동시성의 균형을 설정해요. 네 가지 주요 수준으로는 Read Uncommitted, Read Committed, Repeatable Read, Serializable이 있어요.