Notice
Recent Posts
Recent Comments
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

Don't forget to smile

[혼자 공부하는 SQL] Chapter 6-2. 인덱스의 내부 작동 본문

SQL

[혼자 공부하는 SQL] Chapter 6-2. 인덱스의 내부 작동

에르더그 2022. 12. 9. 10:52

균형 트리(Balanced Tree) : 인덱스의 내부 구조로 나무를 거꾸로 표현한 자료 구조

따라서 트리의 제일 상단의 뿌리를 루트, 줄기를 중간, 끝에 달린 잎을 리프라고 함

노드(Node) : 균형 트리 구조에서 데이터가 저장되는 공간

노드는 개념적인 용어이며, MySQL에서는 주로 페이지라고 함

루트 노드 : 노드의 가장 상위 노드

리프 노드 : 가장 마지막에 존재하는 노드

중간 노드 : 루프와 리프 노드를 제외한 모든 노드

페이지 분할 : 균형 트리(인덱스)에서 데이터 변경 작업(INSERT, UPDATE, DELETE) 시 데이터가 나눠지는 현상

이 떄문에 인덱스가 있을 때 데이터 변경 작업은 오히려 느려지게 됨

인덱스 검색 : 클러스터형 인덱스 또는 보조 인덱스를 사용하여 데이터를 검색하는 행위

일반적으로 균형 트리 형태의 클러스터형 인덱스가 보조 인덱스보다 더 적은 검색을 통해 데이터를 찾아냄

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

 

1) 클러스터형 인덱스 생성을 위해 cluster 테이블 생성 후 데이터 입력

 

2) SELECT 문을 통해 전체 데이터 검색 시 입력한 순서대로 출력

 

3) mem_id에 기본 키를 설정하여 클러스터형 인덱스 생성 시 mem_id 기준 오름차순으로 정렬

이 때 실제 데이터는 균형 트리 형태의 인덱스가 생성

<보조 인덱스 구성하기>

 

1) 마찬가지로 보조 인덱스 생성을 위해 테이블을 생성 후 데이터 입력

 

2) 고유 키로 보조 인덱스를 생성해도 실제 출력되는 데이터의 순서는 변하지 않음

이는 보조 인덱스는 클러스터형 인덱스와 다르게 데이터 페이지를 건드리지 않기 때문