사용자 도구

사이트 도구


database:mysql:innodb

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
마지막 판 양쪽 다음 판
database:mysql:innodb [2015/05/07 09:23]
kwon37xi
database:mysql:innodb [2015/11/11 14:16]
kwon37xi [Isolation Level]
줄 12: 줄 12:
     * ''READ COMMITTED'' : Commit된 내역을 읽을 수 있는 상태로, 트랜잭션이 다르더라도 특정 타 트랜잭션이 Commit을 수행하면 해당 데이터를 Read할 수 있음. Binary Log가 자동으로 Row Based로 기록됨 (**Statement설정 불가**, Mixed 설정 시 자동 변환)     * ''READ COMMITTED'' : Commit된 내역을 읽을 수 있는 상태로, 트랜잭션이 다르더라도 특정 타 트랜잭션이 Commit을 수행하면 해당 데이터를 Read할 수 있음. Binary Log가 자동으로 Row Based로 기록됨 (**Statement설정 불가**, Mixed 설정 시 자동 변환)
     * ''REPEATABLE READ'' : MySQL InnoDB 스토리지 엔진의 Default Isolation Level. Select 시 현재 데이터 버전의 Snapshot을 만들고, 그 Snapshot으로부터 데이터를 조회. 동일 트랜잭션 내에서 데이터 일관성을 보장하고 데이터를 다시 읽기 위해서는 트랜잭션을 다시 시작해야 함.     * ''REPEATABLE READ'' : MySQL InnoDB 스토리지 엔진의 Default Isolation Level. Select 시 현재 데이터 버전의 Snapshot을 만들고, 그 Snapshot으로부터 데이터를 조회. 동일 트랜잭션 내에서 데이터 일관성을 보장하고 데이터를 다시 읽기 위해서는 트랜잭션을 다시 시작해야 함.
-    * ''SERIALIZABLE'' : 가장 높은 Isolation Level로 트랜잭션이 완료될 때까지 SELECT 문장이 사용하는 모든 데이터에 Shared Lock이 걸림. 다른 트랜잭션에서는 해당 영역에 관한 데이터 변경 뿐만 아니라 입력도 불가+    * ''SERIALIZABLE'' : 가장 높은 Isolation Level로 트랜잭션이 완료될 때까지 SELECT 문장이 사용하는 모든 데이터에 Shared Lock이 걸림. 다른 트랜잭션에서는 해당 영역에 관한 데이터 변경 뿐만 아니라 입력도 불가
 +    * **Transaction 이 길어질 경우에 무슨 사태가 발생하는지 철저한 테스트가 필요하다.**
  
database/mysql/innodb.txt · 마지막으로 수정됨: 2015/11/11 14:18 저자 kwon37xi