MySQL 의 FreeList 메커니즘 을 자세히 설명 합 니 다.

머리말
MySQL 이 시작 되면 BufferPool 이 초기 화 됩 니 다.어떤 조회 작업 도 수행 하지 않 기 전에 BufferPool 의 캐 시 페이지 는 빈 메모리 로 사용 되 지 않 았 고 데이터 도 저장 되 지 않 았 습 니 다.
그리고 버퍼 페이지 의 설명 정 보 를 통 해 가리 키 는 캐 시 페이지 를 직접 찾 을 수 있다 는 것 도 알 고 있 습 니 다.
그러면 우리 가 디스크 에서 읽 은 데이터 페이지 를 그 버퍼 페이지 에 넣 어야 한 다 는 것 을 생각해 본 적 이 있 습 니까?
이 문 제 는 Free List 를 끌 어 냈 다.
2.무료 목록
사실 Free List 는 Buffer Pool 에서 캐 시 페이지 설명 정 보 를 기반 으로 구 성 된 양 방향 링크 입 니 다.다시 말 하면 Free List 의 모든 노드 는 캐 시 페이지 에 대응 하 는 설명 정보 입 니 다.또한 설명 정 보 를 통 해 지정 한 캐 시 페이지(캐 시 페이지)를 찾 을 수 있 습 니 다.

이 노 DB 디자인 프 리 리스트 의 취 지 는 위 에서 말 한 문 제 를 해결 하기 위 한 것 이다.
이 캐 시 페이지 에 데 이 터 를 저장 하지 않 으 면 설명 정 보 는 Free List 에 유 지 됩 니 다.이 때 디스크 에서 읽 은 데이터 페이지 를 캐 시 페이지 에 넣 으 려 면 먼저 Free List 에서 노드 를 찾 아야 합 니 다.(Free List 의 모든 노드 는 사용 되 지 않 은 캐 시 페이지 를 가리 키 고 있 습 니 다)그 다음 에 읽 은 이 데이터 페이지 를 이 노드 가 가리 키 는 캐 시 페이지 에 넣 을 수 있 습 니 다.
해당:데이터 페이지 에 데 이 터 를 넣 으 면.그것 에 대응 하 는 설명 정보 블록 은 Free List 에서 이동 합 니 다.
3.데이터 페이지 가 캐 시 에 있 는 지 어떻게 판단 합 니까?
MySQL 이 방금 읽 은 이 데이터 페이지 가 캐 시 페이지 에 있 는 지 궁금 하지 않 습 니까?
이 기능 의 실현 은 다른 데이터 구조 에 의존 합 니 다:hash table
key=표 공간 번호+데이터 페이지 번호
value=캐 시 페이지 주소
hash table 에 존재 한다 면 이 데이터 페이지 가 Buffer Pool 에 존재 한 다 는 뜻 입 니 다.Buffer Pool 의 캐 시 페이지 를 우선 사용 합 니 다.버 퍼 풀 의 캐 시 페이지 를 왜 우선 사용 하 는 지 생각 할 수 있 을 거 라 고 믿 습 니 다!우선 디스크 의 무 작위 IO 를 면 제 했 고,그 다음 캐 시 페이지 의 데 이 터 는 이미 수 정 된 더러 운 데이터 일 수 있 습 니 다.
이상 은 MySQL 의 FreeList 체 제 를 상세 하 게 설명 하 는 상세 한 내용 입 니 다.MySQL FreeList 체제 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기