상세 컨텐츠

본문 제목

SQL 시작하기

Developer/sql

by gabriel.LIM 2014. 4. 4. 15:02

본문

1. SQL 인덱싱

 

* 인덱스란 무엇인가?

인덱스는 데이터를 빠르게 검색하기 위해 필요한 존재이다. 예를들면 sql server 참고서적에서 "primary" 라는 단어를 찾고자 한다면 우리는 책 뒤에 있는 색인을 참조하여 찾는다. 하지만 뒤에 인덱스가 없다면 우리는 책 앞부분부터 전체를 뒤져서 찾아야 한다.

데이터베이스에서도 데이터를 찾기위해 테이블 전체를 스캔하느냐 아니면 인덱스를 이용해 그 데이터가 있는곳으로 바로 찾으러 가느냐 하는 성능에 아주 중요한 영향을 미치는 요소 중 하나이다.

그렇다고 인덱스를 사용한다고해서 무작정 좋은것 만은 아니다. 인덱스를 만들게되면 그 정보를 유지하기위해 디스크 공간도 필요하게되고 인덱스가 걸려있는 테이블은 인덱스가 없을 때보다 데이터를 추가하거나 변경할 때 더 많은 시간이 소요된다.

이러한 이유로 인덱스를 만들 때 해당 테이블의 용도를 정확히 이해해야한다.

 

따라서 이번 글에서는 인덱스에 대한 이해와 사용법에 대해서 설명해보겠습니다.

 

* 인덱스의 종류와 검색

인덱스는 크게 두종류로 CLUSTERED INDEX NON-CLUSTERED INDEX 가 있다.

1) CLUSTERED INDEX :

CLUSTERED INDEX를 생성하게 되면 데이터페이지 자체가 인덱스 키값에 의해 물리적으로 정렬됩니다.

 

2) NON-CLUSTERED INDEX :

NON-CLUSTERED INDEX를 생성하면 데이터페이지는 그대로 있고, 인덱스 페이지만 정렬된다.

그리고 인덱스에는 UNIQUE를 사용해서 인덱스의 키값이 고유하게 할건지 아닌지를 지정할 수 있다.

 

- CLUSTERED INDEX

- UNIQUE CLUSTERED INDEX

- NONCLUSTERED INDEX

 

[출처] [MS-SQL]인덱스(INDEX)의 모든 것|작성자 젊은사자