본문 바로가기

T아카데미/데이터베이스

19강. SQL Advanced 6

[ 목차 ]

1. 트랜잭션

2. 트랜잭션 기본 설정 확인/설정 끄기

3. 트랜잭션의 ACID 특성

4. 락

5. 격리수준

6. 격리수준 확인/변경

 

1. 트랜잭션

1) 복수의 SQL문을 수행하는 도중에 장애가 발생했을 때 장애에 대응할 수 있도록 하는 기능

2) 전체 수행(커밋)과 전체 취소(롤백) 두 가지의 결과값만 가짐

3) 기본적으로 AutoCommit모드가 선택

4) 트랜잭션을 지원하기 위해서는 AutoCommit모드를 오프시켜야 함

5) InnoDB 스토리지엔진만 사용 가능

 

2. 트랜잭션 기본 설정 확인/설정 끄기

select @@autocommit;

1) 결과값이 1의 경우 설정, 0의 경우 비설정 상태

set autocommit=false;

3. 트랜잭션의 ACID 특성

1) 원자성 : 전체가 수행되거나 전체가 취소되어야 함

2) 일관성 : 트랜잭션 전후에 데이터가 손상받으면 안되며, 같은 데이터가 다른 값을 가지면 안됨

3) 고립성 : 여러 개의 트랜잭션이 수행될 때 성능과 데이터 안정성간의 trade-off

4) 지속성 : 트랜잭션이 종료된 이후에도 데이터에 문제가 없어야 함

 

4. 락

1) 공유자원에 대해 여러 개의 트랜잭션이 접근(동시성제어, 동기화)하려고 결쟁 할 대 이를 제어하는 방법

2) 일관성과 무결성을 지키기 위해 적용

3) 단위테이블 락 : 동일한 테이블을 다른 트랜잭션이 사용하고 있다면 접근금지

4) 줄단위 락 : 동일한 줄만 접근 금지, 테이블 락에 비해 높은 성능

 

5. 격리수준

1) 트랜잭션에 일관성 없는 데이터를 허용하는 레벨

2) Read Uncommitted

  1] 트랜잭션이 처리되는 도중에 다른 트랜잭션이 해당 데이터를 읽기ㅡㄹ 허용

  2] 성능은 높지만 데이터의 안정성이 떨어짐

3) Read Committed 

  1] 트랜잭션이 끝난 이후에만 접근하도록 허용

4) Repeatable Read 

  1] 다른 트랜잭션이 업데이트하는 것은 금지하지만 레코드를 추가하는 것은 허용

5)Serializable

  1] 트랜잭션이 동시에 수행되는 것이 금지되고 순차적으로 수행

 

6. 격리수준 확인/변경

select @@tx_isolation;
set tx_isolation = '변경할 격리수준';
commit

'T아카데미 > 데이터베이스' 카테고리의 다른 글

21강. SQL Advanced 8  (0) 2020.03.27
20강. SQL Advanced 7  (0) 2020.03.27
18강. SQL Advanced 5  (0) 2020.03.27
17강. SQL Advanced 4  (0) 2020.03.25
16강. SQL Advanced 3  (0) 2020.03.25