데이터베이스에서 인덱스란
데이터베이스에서 인덱스는 자료구조 형태로 저장 됩니다. MySQL에서는 일반적으로 B+ Tree 형태로 저장이 되는데요!
B+ Tree란
B+ Tree에 데이터를 삽입, 검색하는 과정을 알아보면 왜 인덱스를 활용하면, 데이터 검색 속도가 왜 빨라지는지 알 수 있습니다.
B+ Tree에 데이터를 삽입할 때, 상위 노드로 올라가는 기준은 page size가 꽉 찼을때의 데이터 개수가 n 이라면 n-1/2+2번째 입니다.
만약 n이 짝수라면, n-1/2번째가 상위 노드로 올라가게 됩니다.
아래 링크는 B+ Tree를 실습할 수 있는 사이트 링크 입니다.
https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html
클러스터형 인덱스란?
- 클러스터형 인덱스를 생성하면 클러스터 인덱스에는 항상 정렬된 형태의 데이터가 들어가 있어야 한다.
- 테이블당 하나만 생성할 수 있다.
- 인덱스를 건 하나의 컬럼에 대응되는 행을 가진 컬럼, 페이지 번호를 가진 컬럼이 있는 인덱스 페이지, 데이터 페이지로 이루어져 있다
비 클러스터형 인덱스란?
- 테이블당 여러개 생성 가능
- 인덱스에는 정렬되지 않은 데이터가 들어가 있다.
- 인덱스는 페이지 그룹번호, 데이터 페이지 번호, 행의 순번으로 구성된 포인팅 정보 / 데이터 페이지로 구성되어 있다.
참조
'디비' 카테고리의 다른 글
DB Connection Pool에 대해서 (0) | 2022.09.03 |
---|