잠금은(LOCK) 동시성을 제어하기 위한 기능이고 트랜잭션은 데이터의 정합성을 보장하는 기능이다
Transaction Isolation Level (MSSQL 과 비슷)
•READ UNCOMMITTED(dirty read)
다른 트랜잭션이 Commit 전 상태를 볼 수 있음
Binary Log가 자동으로 Row Based로 기록됨 (Statement설정 불가, Mixed 설정 시 자동 변환)
•READ-COMMITTED
Commit된 내역을 읽을 수 있는 상태로, 트랜잭션이 다르더라도 특정 타 트랜잭션이 Commit을 수행하면 해당 데이터를 Read할 수 있음
Binary Log가 자동으로 Row Based로 기록됨 (Statement설정 불가, Mixed 설정 시 자동 변환)
InnoDB의 시스템 테이블 스페이스의 언두영역에 기록되는 언두 레코드를 이용 (오라클과 유사)
•REPEATABLE READ
MySQL InnoDB 스토리지 엔진의 Default Isolation Level
Select 시 현재 데이터 버전의 Snapshot을 만들고, 그 Snapshot으로부터 데이터를 조회
동일 트랜잭션 내에서 데이터 일관성을 보장하고 데이터를 다시 읽기 위해서는 트랜잭션을 다시 시작해야 함
•SERIALIZABLE
가장 높은 Isolation Level로 트랜잭션이 완료될 때까지 SELECT 문장이 사용하는 모든 데이터에 Shared Lock이 걸림
다른 트랜잭션에서는 해당 영역에 관한 데이터 변경 뿐만 아니라 입력도 불가
$ vi /etc/my.cnf
## [mysqld] 설정에 추가
transaction-isolation = READ-COMMITTED (일반적 Mysql innodb 엔진 설치시 이것을 사용)
'DB - MySQL' 카테고리의 다른 글
maria DB 10 설치 (text) (0) | 2017.03.23 |
---|---|
MySQL my.cnf 파일 설정 (0) | 2017.03.23 |
MySQL 모니터링 툴 (0) | 2017.03.06 |
MySQL DB 리소스 사용량 (0) | 2017.03.06 |
MySQL 이중화 방식 - MHA 구성 방법 (0) | 2017.03.06 |