혼공단/혼공단 7기

혼자 공부하는 SQL 6장 - 인덱스

하양훈 2022. 2. 13. 13:47
반응형

<인덱스>

- 데이터를 빠르게 찾아주는 도구

- 클러스터형 인덱스, 보조인덱스, 고유 인덱스 등이 있다.

- 클러스터형 인덱스 : 기본키로 지정하면 자동 생성, 테이블에 1개만 제작 가능

- 보조 인덱스 : 고유키로 지정하면 자동 생성, 여러개를 만들수도 있지만 자동 정렬되지는 않는다.

- 고유 인덱스 : 값이 중복되지 않는 인덱스

- 빨리 찾을 수 있는 단점이 있지만, 필요없는 인덱스를 너무 많이 만들경우 되려 공간차지만 할수도 있다.

 

<인덱스의 내부 작동 원리>

- 클러스터형 인덱스와 보조 인덱스는 내부적으로 균형 트리로 만들어진다.

 

[균형 트리]

- 데이터가 저장되는 공간을 노드라고 한다.

- 루트페이지부터 하나하나 검색해서 아래로 내려간다.

- 균형트리로 만들경우 데이터를 변경하는 작업에서 더 오래걸릴수 있다 => 페이지 분할 때문

- 페이지분할 : 새로운 페이지를 준비해서 데이터를 나누는 작업

 

<인덱스의 실제 사용>

[인덱스 생성]

CREATE [UNIQUE] INDEX 인덱스_이름
	ON 테이블_이름 (열_이름) [ASC | DESC]

- UNIQUE : 중복이 안되는 고유 인덱스 생성

 

[인덱스 제거]

DROP INDEX 인덱스_이름 ON 테이블_이름

 

<인덱스를 효과적으로 사용하는 방법>

- 인덱스는 열 단위에 생성이 된다.

- WHERE절에서 사용되는열에 인덱스를 만들어야 한다.

- WHERE절에 사용되더라도 자주 사용해야 가치가 있다.

- 데이터의 중복이 높은 열은 인덱스를 만들어도 별 효과가 없다.

- 클러스터형 인덱스는 테이블당 하나만 생성할 수 있다.

- 사용하지 않는 인덱스는 제거한다.

반응형