서비스중인 mariaDB 의 전반적인 서비스속도가 상당히 느려지는 이슈가 발생했다.
해당 이슈를 해결하기위해 InnoDB에 대해 알아보게 됐고, InnoDB Buffer pool size가 부족하여 발생한 이슈임을 확인하였다.
mysql은 주로 MyISAM, InnoDB 두가지 스토리지 엔진중 하나를 사용한다.
현재 진행중인 프로젝트의 mariaDB는 InnoDB 스토리지 엔진을 사용중이다.
MySQL 5.5 버젼 이후에는 InnoDB를 기본 스토리지 엔진으로 사용된다고 한다.
Tablespace 개념을 사용한다. MVCC : 락을 걸지않고 작업을 수행함으로써, 다른 트랜잭션이 갖고있는 락을 기다리지않고 읽기작업이 가능

InnoDB는 In-memory 구조로, 데이터와 인덱스를 메모리에 캐싱하기 위한 버퍼 풀이라는 저장 영역을 유지 관리한다.
주요 구성으로는 Buffer Pool, Log Buffer, Change Buffer 등으로 구성된다.
본 페이지에서는 Buffer Pool에 대해서만 간략히 알아보겠습니다.
InnoDB가 액세스할 때 테이블 과 인덱스 데이터를 캐시하는 메인 메모리영역입니다.
해당 영역은 메모리로부터 데이터를 직접 처리할 수 있게하여 처리속도를 향상시킵니다.
dedicated server의 경우, 물리 메모리의 최대 80%까지 버퍼풀이 할당됩니다.
효과적으로 읽기 작업을 하기 위해서 버퍼 풀은 여러 행을 보유할 수 있는 페이지들로 나눠집니다.

위와 같은 LRU 방식으로 버퍼풀에 새로운 페이지를 추가시킨다.
LRU 방식을 활용하여 자주 액세스하는 데이터를 메모리에 유지시킨다.(?)