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 서버 및 세션의 트랜잭션 격리 수준을 손쉽게 파악할 수 있습니다.