MySQL/InnoDB storage engine

read-ahead

lejpower 2021. 8. 31. 18:50

read-ahead 란?

하나의 extent(64개 pages group)을 모두 buffer pool에 prefetch하는 작업. (asynchronous request임)

이들 페이지도 곧 읽혀질거라는 가정하에 모두 버퍼에 올리는 것

 

알고리즘

linear read-ahead technique: 버퍼풀 안에 순차적으로 읽혀진 페이지 개수로 판단

만약 하나의 extent내에서 순차적으로 읽혀진 페이지 개수가 innodb_read_ahead_threshold 이상이면 다음 extent전체 페이지를 read-ahead

random read-ahead technique: 버퍼풀 안에 존재하는 페이지 개수로 판단(순차적인지 여부와 무관함)

만약 한 extent내의 13개의 연속된 페이지가 버퍼풀에 존재한다면, 해당 extent의 나머지 pages들을 read-ahead한다

'MySQL > InnoDB storage engine' 카테고리의 다른 글

Insert intention lock  (0) 2021.09.06