DBMS & NoSQL MySQL Current: MySQL/MariaDB 의 트랜잭션 격리 수준(transaction isolation level) 확인하기 MySQL/MariaDB 의 트랜잭션 격리 수준(transaction isolation level) 확인하기 TL;DRMySQL 콘솔에서 다음 시스템 변수를 조회하면 전역 "트랜잭션 격리 수준"을 확인할 수 있습니다. mysql> SELECT @@global.tx_isolation; +-----------------------+ | @@global.tx_isolation | +-----------------------+ | READ-COMMITTED | +-----------------------+ SQL 개요트랜잭션 격리 수준은 DBMS 를 잘 사용하기 위해서는 꼭 이해해야 하는 설정입니다.저도 MySQL 의 격리 수준을 확인해야 하는 경우가 있는데 stackoverflow 에 좋은 글이 있어서 나중에 활용하기 위해 정리해 봅니다. InnoDB 의 기본 격리 수준은 "REPEATABLE READ" 입니다. 확인 방법MySQL 설정 확인설정 파일에서 transaction-isolation 항목을 찾아서 확인하면 되며 이 항목은 mysqld 나 server 엔트리에 있습니다.격리 수준은 커맨드라인이나 전역, 또는 세션에서도 설정할 수 있으므로 설정 파일만 확인해서는 안됩니다. [mysqld] transaction-isolation = REPEATABLE-READ CODE 커맨드라인MySQL 을 실행할 때 명령행에서 다음 옵션을 추가해서 격리수준을 설정할 수 있지만 이 방법은 보통 사용하지 않으며 권장하지도 않습니다. --transaction-isolation=READ-COMMITTED CODE 전역 설정 확인MySQL 콘솔에서 global.tx_isolation 시스템 변수를 조회하면 전역 "트랜잭션 격리 수준"을 확인할 수 있습니다. mysql> SELECT @@global.tx_isolation; +-----------------------+ | @@global.tx_isolation | +-----------------------+ | READ-COMMITTED | +-----------------------+ SQL 세션 설정 확인MySQL 콘솔에서 tx_isolation 을 조회하면 전역 "트랜잭션 격리 수준"을 확인할 수 있습니다. mysql> SELECT @@tx_isolation; +----------------+ | @@tx_isolation | +----------------+ | READ-COMMITTED | +----------------+ BASH 같이 보기laravel model testing 시 duplicated key 에러 피하기Refdatabase - Mysql - How to find out isolation level for the transactions - Stack OverflowMySQL :: MySQL 8.0 Reference Manual :: 15.7.2.1 Transaction Isolation Levels ×