InnoDB 트랜잭션 분리레벨은 표준으로는 REPEATABLE READ로 되어있다.
사용 분리레벨을 변경하는 경우에는 다음과 같이 조작한다.
트랜잭션분리레벨을 READ COMMITTED로 변경
mysql> SET TRANSACTION ISOLATION LEVEL Read Committed;
○MySQL표준의 트랜잭션 분리레벨의 변경
MySQL의 표준 트랜잭션 분리레벨은 REPEATABLE READ이다. 이것을 변경할 때는 가각 다음과 같이 조작한다.
1. SET문을 이용해서 트랜잭션 분리레벨을 변경한다.
SET문에서 tx_isolation변수의 값을 변경함으로써 표준 트랜잭션분리레벨을 변경가능 하다.
서버 변수를 이용하면 서버를 멈추지 않고 MySQL표준 트랜잭션분리레벨을 변경가능하다.
SET문으로 변경한다.
mysql>SET GLOBAL tx_isolation="read-committed";
SET문으로 지정한 경우에는 명령을 실행한 후에 접속한 클라이언트에 대해서만 유효하다.
SET문 실행중에 접속하고 있던 클라이언트(SET을 실행하고 있던 자신포함)에는 영향을 끼치지 않는다. 또 tx_isolation변수에 설정하는 값에는 다음과 같이 하이픈(-)를 적어 넣는 것을 잊어버리지 말기 바란다.
READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE
이 서식은 GLOBAL이외에도 SESSION 지정도 가능하다. SESSION의 경우는 자신이 사용하는 분리레벨의 설정이 된다.
2. --transaction-isolation옵션으로 트랜잭션 분리레벨을 변경한다.
명령어 라인에서 --transaction-isolation옵션을 사용해서 변경하는 경우는 다음과 같이 조작한다.
기동할 때 옵션을 변경한다.
mysqld --transaction-isolation=read-committed
이 경우에는 지정하는 트랜잭션 분리레벨에 하이픈(-)을 넣을 필요가 있다.
또 이 옵션을 설정파일인 my.cnf 또는 my.ini의 [mysqld] 그룹에 추가하는 것으로 트랜잭션 레벨을 변경할 수 있다.
설정파일을 추가한다.
[mysqld]
transaction-isolation=read-committed