4 변경 버퍼
4.1 기본 개념
변경 버퍼는 해당 페이지가 버퍼 풀에 없을 때 보조 인덱스 페이지의 변경 사항을 캐시하는 특수 데이터 구조입니다. INSERT, UPDATE 또는 DELETE 작업(DML)으로 인해 발생할 수 있는 버퍼 변경 사항은 나중에 페이지가 다른 읽기 작업에 의해 버퍼 풀에 로드될 때 병합됩니다.
관련 무료 학습 추천: mysql 동영상 튜토리얼
위 그림에서 볼 수 있듯이 변경 버퍼는 버퍼 풀에 있는 메모리를 사용하므로 무한히 커질 수 없습니다. 변경 버퍼 크기는 innodb_change_buffer_max_size 매개변수를 통해 동적으로 설정할 수 있습니다.
예를 들어 50으로 설정하면 변경 버퍼의 크기는 버퍼 풀의 최대 50%까지만 차지할 수 있습니다.
데이터 페이지를 업데이트해야 하는 경우:
페이지는 다음 쿼리가 데이터 페이지에 액세스할 때만 데이터 페이지를 메모리로 읽어온 다음 변경 버퍼에서 이 페이지와 관련된 작업을 수행합니다. 이러한 방식으로 데이터 로직의 정확성이 보장될 수 있습니다.
변경 버퍼는 실제로 영구 데이터입니다. 즉, 메모리에 복사될 뿐만 아니라 디스크에도 기록됩니다.
4.2 merge
최신 결과를 얻기 위해 변경 버퍼의 작업을 원본 데이터 페이지에 적용하는 프로세스입니다.
4.2.1 트리거 타이밍
업데이트 작업이 먼저 변경 버퍼에 기록될 수 있는 경우 , 디스크 읽기를 줄일 수 있으며 명령문 실행 속도가 크게 향상됩니다. 그리고 데이터를 메모리로 읽어오려면 버퍼 풀을 점유해야 하므로 메모리 사용량을 줄이고 메모리 활용도를 높일 수도 있습니다.
4.3 변경 버퍼를 사용해야 하는 경우
4.4 적용 가능한 시나리오
변경 버퍼를 사용하면 일반 인덱싱의 모든 시나리오를 가속화할 수 있나요?
병합은 데이터가 실제로 업데이트되는 시간입니다. 변경 버퍼는 주로 기록된 변경 작업을 캐시합니다. 따라서 데이터 페이지가 병합되기 전에 변경 버퍼 레코드에 변경 사항이 많을수록(즉, 데이터 페이지를 업데이트해야 하는 횟수가 많을수록) 이점이 더 커집니다.
더 많은 관련 무료 학습 권장 사항: mysql 튜토리얼(동영상)
위 내용은 MySQL 버퍼 풀의 변경 버퍼 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!