Open InJun2 opened 1 month ago
인덱스 스캔은 리프노드의 인덱스 키를 순차적으로 조회하지만 해당 인덱스 키에 맞는 레코드를 임의로 찾아야하므로 결국 하나하나 랜덤 I/O가 발생하게됨
인덱스 캐싱
자주 사용되는 인덱스를 메모리에 캐시하여 빠른 액세스를 지원하여 랜덤 I/O를 줄이고 성능을 향상함
I/O 연산 최적화
DBMS에서 디스크 액세스를 최적화하는 다양한 기술을 사용함 인접한 블록을 함께 읽는 프리페칭(pre-fetching) 기술이나 쓰기 연산을 배치 처리하는 방법들이 존재
인덱스 정렬 및 구조 최적화
인덱스의 물리적인 구조를 최적화하여 랜덤 I/O를 줄이는 방법이 있음 예를들면 클러스터드 인덱스(Clustered Index)는 데이터 행과 인덱스 키를 동시에 정렬하여 랜덤 I/O를 최소화할 수 있음
압축 기술
압축을 통해 인덱스의 크기를 줄이고 압축된 작은 인덱스는 메모리에 더 많은 데이터를 캐시할 수 있음
인덱스 레인지 스캔, 인덱스 풀 스캔, 루스 인덱스 스캔, 인덱스 스킵 스캔은 모두 리프노드의 인덱스 페이지를 스캔하는 방법이고 캐싱된게 없거나 최적화 방안이 사용된 것이 없다면 데이터를 찾는데에는 모두 랜덤 I/O를 발생
진행내용
5월 30일 RealMySQL 8챕터 인덱스 스터디 진행
하고싶은 이야기 및 문제를 답변으로 작성해주세요