본문 바로가기

innodb4

InnoDB Undo Log Undo log는 단일 트랜잭션과 관련된 Undo log 레코드의 집합입니다. undo log 레코드에는 클러스터드 인덱스 레코드의 트랜잭션에 의한 제일 최근의 변경사항의 변경 전 데이터에 대한 정보를 포함하고 있습니다. 만약 다른 트랜잭션이 변경 전 데이터를 읽기를 원한다면 undo log 레코드에서 변경 전 데이터를 읽습니다. 롤백 세그먼트내에 포함된 undo log 세그먼트 내에 undo log가 존재합니다. 롤백 세그먼트는 undo 테이블스페이스와 global temporary 테이블스페이스 내에 있습니다. global temporary 테이블스페이스 내에 있는 undo log는 사용자 정의 임시 테이블의 데이터를 수정하는 트랜잭션에 사용됩니다. 이러한 unodo log는 crash recover.. 2021. 1. 16.
InnoDB Redo Log ▶Redo Log? 리두 로그는 crash recovery 중 불완전한 트랜잭션에 의해 변경된 데이터를 수정하기 위해 사용되는디스크 기반 데이터 구조입니다. default로 리두 로그는 ib_logfile0,ib_logfile1로 이름된 두개의 파일이 물리적으로 존재합니다. $ ls -alh ib_logfile* -rw-r-----. 1 mysql mysql 48M Jan 12 02:49 ib_logfile0 -rw-r-----. 1 mysql mysql 48M Dec 14 02:19 ib_logfile1 MySQL은 순환방식으로 리두 로그 파일을 씁니다. 리두 로그는 계속 증가하는 LSN값으로 표시됩니다.(순환로그이기 때문에 다시 순환될때 데이터가 덮어쓰여져 기존에 데이터가 없어지게 됩니다.) - Re.. 2021. 1. 15.
InnoDB IN-MEMORY Structures Mysql의 InnoDB는 In-Memory 구조와 On-Disk 구조로 이루어져 있습니다. In-Memory 구조 ▶ Buffer Pool InnoDB가 액세스할 때 테이블 과 인덱스 데이터를 캐시하는 메인 메모리영역입니다. 해당 영역은 메모리로부터 데이터를 직접 처리할 수 있게하여 처리속도를 향상시킵니다. dedicated server의 경우, 물리 메모리의 최대 80%까지 버퍼풀이 할당됩니다. 효과적으로 읽기 작업을 하기 위해서 버퍼 풀은 여러 행을 보유할 수 있는 페이지들로 나눠집니다. 효과적으로 캐시 관리를 하기위해 버퍼 풀은 링크된 페이지들의 목록으로 구현됩니다. LRU알고리즘으로 관리되어 자주 사용하지 않는 데이터는 age out(삭제) 됩니다. - LRU 알고리즘 버퍼 풀은 LRU(leat.. 2021. 1. 12.
InnoDB 소개 Mysql의 InnoDB는 높은 안정성과 고성능의 균형을 이루는 스토리지 엔집입니다. Mysql 8.0 기준 InnoDB는 기본 Mysql 스토리지 엔진입니다. Engine= 절을 구성하지 않고 테이블을 생성할 경우, InnoDB테이블이 생성됩니다. - DML 작업은 ACID 모델을 따르고 commit,rollback 그리고 응급복구기능을 갖추고 있는 트랜잭션으로 데이터를 보호합니다. - Row level Lock과 Oracle 스타일의 Consistent reads 를 지원하여 동시성 및 성능을 향상합니다. - 기본 키를 기반으로 디스크에 데이터를 정렬하여 쿼리를 최적화합니다. - 데이터 무결성을 유지하기 위해 Foreign Key 제약조건을 지원합니다. InnoDB Multi-Versioning in.. 2021. 1. 8.