Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 현재 트랜잭션 격리 수준( isolation level ) 확인 방법

MySQL에서 현재 설정된 트랜잭션 격리 수준(transaction isolation level)을 확인하려면 SELECT @@TX_ISOLATION 명령어를 실행하면 됩니다. 이 명령은 현재 세션에 적용 중인 격리 수준을 간단하게 조회할 수 있어, 트랜잭션 동작을 분석하거나 문제를 진단할 때 유용합니다.

사용 예시

mysql> SELECT @@TX_ISOLATION;
+-----------------+
| @@TX_ISOLATION  |
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set (0.00 sec)

위 예시의 결과값 REPEATABLE-READ는 MySQL의 기본 격리 수준입니다. 이 수준에서는 같은 트랜잭션 내에서 동일한 데이터를 반복해서 읽을 때 항상 같은 결과가 보장되며, 커밋되지 않은 다른 트랜잭션의 변경 사항은 읽을 수 없습니다.

참고: 최신 MySQL 버전에서의 변수명

MySQL 5.7.20부터 @@TX_ISOLATION 변수는 더 이상 권장되지 않으며(deprecated), 대신 @@transaction_isolation을 사용하는 것이 좋습니다.

mysql> SELECT @@transaction_isolation;
+-------------------------+
| @@transaction_isolation |
+-------------------------+
| REPEATABLE-READ         |
+-------------------------+
1 row in set (0.00 sec)

또한 전역(Global) 격리 수준과 세션(Session) 격리 수준이 서로 다르게 설정될 수 있으므로, 필요에 따라 아래와 같이 구분하여 조회할 수 있습니다.

-- 전역 격리 수준 확인
SELECT @@global.transaction_isolation;

-- 현재 세션의 격리 수준 확인
SELECT @@session.transaction_isolation;

이처럼 간단한 SELECT 쿼리만으로도 현재 MySQL 서버 및 세션의 트랜잭션 격리 수준을 손쉽게 파악할 수 있습니다.