기록이 힘이다.

[혼공 SQL] 인덱스의 내부 작동 본문

SQL

[혼공 SQL] 인덱스의 내부 작동

dev22 2022. 12. 14. 14:26
728x90

클러스트형 인덱스와 보조 인덱스는 모두 내부적으로 균형 트리로 만들어집니다.

 

인덱스의 내부 작동 원리

균형트리의 개념

균형 트리 구조에서 데이터가 저장되는 공간을 노드 node라고 합니다. 

노드를 MySQL에서는 페이지page라고 부릅니다. 페이지는 최소한의 저장 단위로, 15Kbyte(16384byte) 크기를 가집니다. 

균형 트리 구성 여부에 따라 읽어야 하는 페이지 수의 차이가 상당히 큽니다.

 

균형 트리의 페이지 분할

인덱스는 균형 트리로 구성되어 있습니다. 즉, 인덱스를 만들면 SELECT의 속도를 향상시킬 수 있습니다. 그런데 인덱스를 구성하면 데이터 변경 작업(INSERT, UPDATE, DELETE) 시 성능이 나빠집니다. 특히 INSERT 작업이 일어날 때 더 느리게 입력될 수 있습니다. 이유는 페이지 분할이라는 작업이 발생하기 때문입니다.

인덱스의 구조

클러스터형 인덱스 구성하기

Primary Key로 지정했으니 클러스터형 인덱스가 생성

보조 인덱스 구성하기

보조 인덱스가 생성되었는데도 입력한 것과 순서가 동일하