MySQL 14

Gap lock & Next key lock

Locking Read에서 팬텀리드를 막기 위해 사용하는 것이 Next key lock구조다. 이는 Row Lock과 Gap Lock을 조합한 것이다. 여기서 말하는 Gap이라는 것은 행과 행 사이의 논리적인 공간을 말한다. 행 사이에 물리적으로 공간이 있다는 뜻은 아니다. Gap Lock은 "행 사이"라는 객체가 있다고 가정하고 Lock을 거는 것을 말한다. 이러한 논리적인 행 사이에 Lock을 걸어 그 행 사이에 새로운 행이 삽입되지 않도록 한다. 다시 말해 Gap에 Lock을 걸면 Insert는 블록 된다.

MySQL 2021.07.08

MySQL8 bufferpool (버퍼풀)

15.5.1 버퍼 풀 버퍼 풀은InnoDB이 접근 시 테이블 및 인덱스 데이터를 캐시 하는 메인 메모리 내의 영역입니다. 버퍼 풀을 사용하면 자주 사용되는 데이터를 메모리에서 직접 처리하는 바람에 처리 속도가 향상됩니다. 전용 서버에서는 대부분의 경우 최대 80%의 물리 메모리를 버퍼 풀에 할당할 수 있습니다. 대용량 읽기 조작의 효율을 높이기 위한 버퍼 풀은 복수행을 유지할 수 있는페이지로 분할됩니다.캐시 관리를 효율을 위해서, 버퍼 풀은 페이지의 링크 리스트로 구현됩니다사용 빈도가 낮은 데이터는LRU알고리즘의 변형을 사용하여 캐시에서 삭제됩니다. 버퍼 풀을 이용하고 자주 방문되는 데이터를 메모리에 유지하는 방법을 이해하는 것은 MySQL튜닝의 중요한 측면입니다. 버퍼 풀 LRU알고리즘 버퍼 풀은 최저..

MySQL 2021.06.29

How to confirm the usage of change buffer (체인지 버퍼 사용량 확인방법)

SELECT (SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE WHERE PAGE_TYPE LIKE 'IBUF%') AS change_buffer_pages, (SELECT COUNT(*) FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE) AS total_pages, (SELECT ((change_buffer_pages/total_pages)*100)) AS change_buffer_page_percentage; +---------------------+-------------+-------------------------------+ | change_buffer_pages | total_pages | change_bu..

MySQL 2021.06.29