-
Mysql Undo Log 란개발/dbms 2020. 8. 3. 20:54
정의
Undo Log 란 실행 취소 로그 레코드의 집합으로 Transaction 실행후 Rollback 시 Undo Log 를 참조해 이전 데이터로 복구할수 있도록 로깅 해놓은 영역이다.
동작원리
Undo Log 레코드에는 실제 변경되는 컬럼의 이전값과 PK 값만 저장이 된다.
예를들어 user 테이블에서 age 값만 변경했다고 가정하면 변경 이전에 age 에 대한값과 PK 값만 Undo Log 레코드에 들어가게 된다.
트랜잭션 레벨이 READ UNCOMMITTED 아니라면 조회할때에 트랜잭션 중에 변경된 데이터가 Undo Log 에 있다면 Undo Log 에서 읽어간다.
Recovery 시 사용되지 않는다.
트랜잭션에서 다음 유형별로 하나씩 최대 4개의 Undo Log 가 할당된다.
- 사용자정의 테이블에 INSERT 할때
- 사용자정의 테이블에 UPDATE, DELETE 할때
- 사용자정의 임시테이블에 INSERT 할때
- 사용자정의 임시테이블에 UPDATE, DELETE 할때
reference
https://dev.mysql.com/doc/refman/5.7/en/innodb-undo-logs.html
https://blog.naver.com/PostView.nhn?blogId=hanajava&logNo=220659359491
'개발 > dbms' 카테고리의 다른 글
Mysql InnoDB 에서 OS Cache 와의 관계 (0) 2020.08.03 Mysql Redo Log 란 (0) 2020.08.03 master 와 slave 의 쿼리실행 계획이 틀려진 이유는 ? (0) 2019.09.17 mysql 을 두개 설치해보자 (0) 2018.11.09 Inoodb buffer pool 이란 ? (0) 2018.11.09