Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
웹서버/DB

InnoDB Purge History: MVCC 가비지 컬렉션의 핵심 메커니즘

InnoDB Purge History는 MVCC 기반 멀티버전 동시성 제어에서 더 이상 필요 없는 구 버전의 레코드를 언두 로그에서 제거하는 백그라운드 가비지 컬렉션 메커니즘입니다. 트랜잭션 커밋 후 활성 트랜잭션이 해당 데이터에 의존하지 않을 때만 퍼지가 안전하게 수행되며, 배치 기반 병렬 처리와 히스토리 리스트 길이 모니터링으로 성능을 최적화할 수 있습니다.

2026.10.01  ·  9회  · 

InnoDB Purge History의 정의 및 역할

InnoDB Purge History는 멀티버전 동시성 제어(MVCC) 구현에서 더 이상 활성 트랜잭션이 필요로 하지 않는 구 행 버전을 언두 로그에서 물리적으로 제거하는 가비지 컬렉션 메커니즘입니다. DELETE 또는 UPDATE 작업 수행 시 즉시 행을 삭제하지 않고, 커밋된 트랜잭션의 언두 레코드가 히스토리 리스트에 누적된 후 퍼지 프로세스에 의해 정리됩니다.

퍼지 작동 원리

DELETE 또는 UPDATE 연산은 구 행 버전을 언두 로그에 기록하고 클러스터드 인덱스 레코드를 삭제로 표시합니다. 각 행 버전은 트랜잭션 ID(trx_id)를 포함하며, 퍼지 코디네이터 스레드는 활성 트랜잭션의 최소 읽기 뷰(purge_sys->view)를 추적합니다. 활성 트랜잭션의 trx_id가 구 버전의 trx_id보다 모두 클 때 퍼지 스레드는 해당 버전을 안전하게 제거할 수 있습니다.

성능 최적화 및 실무 주의점

기본 퍼지 스레드 수는 4개이며, 배치 크기(innodb_purge_batch_size)는 300입니다. 히스토리 리스트 길이가 높으면(수천 이상) 퍼지가 뒤처지고 있음을 나타내므로, 장시간 실행되는 트랜잭션을 반드시 종료해야 합니다. innodb_max_purge_lag를 설정하면 히스토리 크기 초과 시 INSERT/UPDATE/DELETE 작업을 자동으로 지연시켜 퍼지가 따라잡을 수 있게 합니다.

WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원