InnoDB 언두 로그과 리드 로그
언두 로그란? myql 8.0 기준으로 DB 에서 트랜잭션과 격리 수준을 보장하기 위해서 InnoDB 스토리지 엔진을 사용하는 방법이 있어요. 트랜잭션과 격리 수준을 보장하기 위해서 DML(INSERT, UPDATE, DELETE) 로 변경 요청이 들어오면 변경전, 이전 버전의 데이터를 언두로그라는 공간에 백업해요. 트랜잭션 보장 트랜잭션이 롤백되면, 해야 하는데, 이때 언두 로그에 백업해둔 이전 버전의 데이터를 이용해 복구해요. 격리 수준 보장 특정 커넥션에서 에 에서 데이터를 조회하면 트랜잭션 격리 수준에 맞게 변경중인 레코드를 읽지 않고 하기도 합니다. (READ COMMITED 이상의 격리수준에서는 트랜잭션이 열려있는 데이터에 경우, 언두로그를 먼저 읽습니다. 언두로그 소멸 시점 그렇다면, 언두로그는 백업용 임시 공간이라는 소리인데, 언제까지 메모리에 남아있을까요? 언두로그는 롤백을 하거나, 트랜잭션과 격리할 때 사용하기 때문에 트랜잭션이 종료되면 더이상 필요 없어져서 …