everydayminder
본 포스트에서는 MySQL 트랜잭션 격리수준을 확인하는 방법과 변경하는 방법에 대해 정리한다. MySQL 버전에 따른 사용법 차이 예전에는 tx_isolation이 쓰였는데, MySQL 5.7.20에서 transaction_isolation이 alias로 추가되었고, 8.0에 이르러서는 tx_isolation이 더 이상 사용되지 않기 때문에 변수를 사용하여 트랜잭션 격리수준을 확인하거나 설정할 때, 이를 참고하여 활용하면 된다. MySQL 5.7.2 이하: tx_isolation 사용가능 MySQL 8.0 이상: transaction_isolation 사용 트랜잭션 격리수준 확인하기 현재 트랜잭션 격리 수준이 어떻게 설정되어 있는지는 간단히 쿼리로 확인할 수 있다. SELECT @@GLOBAL.trans..
트랜잭션 DB에서의 트랜잭션이란, 보통 데이터베이스의 어떤 변경을 유발하는 작업 단위를 의미한다. 논리적으로 한 개의 실행 단위를 뜻하며, 물리적으로는 한 개 혹은 여러 개의 실행단위가 묶여 실행되기도 한다. 설명의 편의성을 위해, 종종 은행 계좌간 돈을 이체하는 사례가 주로 인용된다. 트랜잭션의 특징 - ACID DB에서의 트랜잭션은 아래 네 개의 특징을 지닌다. Atomicity Consitency Isolation Durability Atomicity(원자성) 트랜잭션은 논리적으로 하나의 실행단위여야 한다. 물리적으로 여러 개의 statement로 구성되어 있다 하더라도 논리적인 단위로 묶일 수 있어야 한다. 하나의 실행단위라면, 실행시 두 개의 상태로 귀결된다. 성공하거나 실패하거나 (all or..