디비

데이터베이스 인덱스 이해해보기

_soboro 2022. 9. 11. 00:56

데이터베이스에서 인덱스란

데이터베이스에서 인덱스는 자료구조 형태로 저장 됩니다. 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

B+ Tree

 

클러스터형 인덱스란?

- 클러스터형 인덱스를 생성하면 클러스터 인덱스에는 항상 정렬된 형태의 데이터가 들어가 있어야 한다.

- 테이블당 하나만 생성할 수 있다.

- 인덱스를 건 하나의 컬럼에 대응되는 행을 가진 컬럼, 페이지 번호를 가진 컬럼이 있는 인덱스 페이지, 데이터 페이지로 이루어져 있다

비 클러스터형 인덱스란?

- 테이블당 여러개 생성 가능

- 인덱스에는 정렬되지 않은 데이터가 들어가 있다.

- 인덱스는 페이지 그룹번호, 데이터 페이지 번호, 행의 순번으로 구성된 포인팅 정보 / 데이터 페이지로 구성되어 있다.

 

 

참조

 

[데이터베이스] 클러스터 인덱스와 넌클러스터 인덱스/ 개념 총정리

오늘은 인덱스의 종류인 클러스터 인덱스, 넌 클러스터 인덱스에 대해 정리해보겠습니다. 일단 인덱스란 데이터를 빠르게 검색할 수 있게 해주는 객체입니다. 컬럼을 정렬한 후에 데이터를 빠

junghn.tistory.com

 

 

DB Index 동작원리를 알아보자

B+Tree를 통해 알아보는 Index 동작 원리

kyungyeon.dev

 

 

'디비' 카테고리의 다른 글

DB Connection Pool에 대해서  (0) 2022.09.03