잠금은(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 엔진 설치시 이것을 사용)

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기

'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

+ Recent posts