본문 바로가기

cs/DB

index란 무엇인가?

index는 데이터베이스 데이터를 복사해 정렬 해놓은 컬럼의 사본으로 검색 속도를 높여주는 자료구조이다.

 

array나 arrayList의 자료형에 담아서 데이터를 정렬할 수 있지만 실제 컴퓨터는 index를 만들 때 데이터를 트리 형태로 정렬 되어있다. 이를 binary search tree라고 한다.

 

이 트리 구조의 노드마다 데이터가 여러개 있는 것을 B-tree형태라고 한다. 적은 횟수로 데이터 검색 가능하다.

 

가장 아래 노드에만 데이터를 보관하고 연결하며 나머지 노드에는 데이터 탐색 가이드를 넣은 것은 B+tree 구조라 한다. 범위 검색이 쉽다는 장점이 있기 때문에 많이 사용한다.

 

예)

age=20을 찾아라

 

index가 없는 경우 : 모든 행읠 다 뒤진다

 

index가 있는 경우 : 1.index에서 age=20인 경우를 빠르게 찾는다.

2. indeq와 연결된 원래 테이블의 행을 가져온다.

 

단점 : 1. DB 용량을 많이 차지한다.

2. 기존 테이블에 수정, 삽입, 삭제 시 index에 반영해야 한다.