본문 바로가기

Database/MySQL

InnoDB Buffer pool

buffer pool 은 InnoDB 가 억세스 하는 테이블 및 인덱스 데이터를 캐시하는 메모리 영역이다.

시스템 물리 메모리의  60~80% 정도를 할당 한다.

 

작업의 효율성을 위해 복수의 행을 보관할 수 있도록 페이지로 나뉘며 링크된 페이지 목록으로 구현된다.

오랫동안 참조되지 않은 페이지는 LRU 알고리즘으로 만료 시킨다.

 

buffer pool 은 2개의 하위 리스트로 구성된다.

  • new sublist
    • buffer pool 의 5/8 공간을 차지
    • 최근에 참조되면 이 sublist 에 추가 된다.
  • old sublist
    • buffer pool 의 3/8 공간을 차지
    • 참조되지 않을 수록 점차 이 sublist 에 가까워지거나 이동되어 진다.

새로운 page 가 추가될때 이 두개의 sublist 사이로 추가되며 기존의 old sublist 의 페이지는 자동으로 더 age 하게 된다

( age 라 함음 나이를 먹는다는 뜻 , 이는 나이가 너무 많으면 나중에 buffer pool 에서 퇴출된다는 뜻 )

 

buffer pool optimizing

mysqldump 나 where 절 없는 select, read ahead 의 대량 작업이 buffer pool 에 큰 영향을 줄 수 있고 이를 잘 제어해야 함

 

buffer pool monitoring

 

'Database > MySQL' 카테고리의 다른 글

InnoDB Adaptive Hash index  (0) 2021.10.01
InnoDB change buffer  (0) 2021.10.01
InnoDB Locking and Transaction Model  (0) 2021.10.01
MySQL shell importTable() 사용하기  (0) 2021.10.01
MySQL shell exportTable() 사용하기  (0) 2021.10.01