개요 MySQL은 빠른 성능을 위해 메모리 영역의 Buffer Pool을 사용합니다. 해당 영역의 구조 및 동작 방식에 대해 알아보도록 하겠습니다. Buffer Pool이란 Innodb 엔진에서 테이블이나 인덱스 데이터를 캐시 하는 메모리 영역을 말합니다. 데이터를 메모리에서 직접 액세스 하여 속도가 I/O 작업 시 속도가 빠릅니다. LRU 알고리즘 MySQL 캐시 전략은 변형된 LRU(Least Recently Used Alogorithm)를 사용하며 가장 오랫동안 참조되지 않은 페이지를 제거합니다. 단순한 LRU 알고리즘의 경우 Head 에는 가장 최근 데이터 Tail 에는 가장 오래된 데이터가 존재하며 이후 버퍼가 가득 찼을 경우 Tail에 있는 데이터를 버퍼 풀에서 제거합니다. 다만 MySQL의 ..
[MySQL] Innodb Buffer Pool 구조 및 캐시 전략
개요 MySQL은 빠른 성능을 위해 메모리 영역의 Buffer Pool을 사용합니다. 해당 영역의 구조 및 동작 방식에 대해 알아보도록 하겠습니다. Buffer Pool이란 Innodb 엔진에서 테이블이나 인덱스 데이터를 캐시 하는 메모리 영역을 말합니다. 데이터를 메모리에서 직접 액세스 하여 속도가 I/O 작업 시 속도가 빠릅니다. LRU 알고리즘 MySQL 캐시 전략은 변형된 LRU(Least Recently Used Alogorithm)를 사용하며 가장 오랫동안 참조되지 않은 페이지를 제거합니다. 단순한 LRU 알고리즘의 경우 Head 에는 가장 최근 데이터 Tail 에는 가장 오래된 데이터가 존재하며 이후 버퍼가 가득 찼을 경우 Tail에 있는 데이터를 버퍼 풀에서 제거합니다. 다만 MySQL의 ..
2022.05.17