CODEKILLER

반응형

▶ 트랜잭션을 설정하는 방법 (공식 문서)
https://www.postgresql.org/docs/current/sql-set-transaction.html

 

SET TRANSACTION

SET TRANSACTION SET TRANSACTION — set the characteristics of the current transaction Synopsis SET TRANSACTION transaction_mode [, ...] SET TRANSACTION …

www.postgresql.org

PostgreSQL의 4가지 표준 Transaction Isolation Level의 종류

 

1. READ UNCOMMITTED (낮은 격리수준)
설정에는 정의되어 있지만, 지원하지 않습니다.
(READ COMMITTED와 동일)

2. READ COMMITTED (기본값)

커밋된 데이터만 READ 할 수 있으며, DIRTY READ가 불가능.

(DIRTY READ : 다른 트랜잭션에서 커밋하지 않는 데이터를 읽을 수 있는 것)

3. REPEATABLE READ
조회 시 항상 동일한 데이터 응답을 보장.

4. SERIALIZABLE (높은 격리 수준)
모든 작업이 동시에 일어나지 않고 하나의 트랜잭션 처리처럼 동작합니다.


▶ 현재 설정 알아보기 

show transaction isolation level

위의 구문을 질의하면 현재 postgres의 설정되어 있는 Transaction Isolation Level을 확인할 수 있습니다.

 

▶설정으로 변경하기 (postgresql.conf 내 설정을 수정하는 방법)

#default_transaction_isolation = 'read committed'

위의 설정을 변경하고 서비스를 다시 시작합니다.

 

▶DB에 명령어로 격리 수준 변경하기

ALTER DATABASE DBNAME SET DEDFAULT_TRANSACTION_ISOLATION TO 'REPEATABLE READ';

명령어를 질의 후에 재접속하여 확인하면 적용된 것을 확인가능합니다.

 

▶ 트랜잭션 격리 수준 변경하기 (질의)

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band