인덱스의 개념과 자동 생성
인덱스의 개념
개념
- 책의 뒷부분에 있는 색인 또는 찾아보기와 비슷한 개념
- 작은 데이터에는 없어도 별 차이 없지만, 대량의 데이터에는 인덱스가 있어야만 데이터를 빠른 시간에 검색할 수 있다
장단점
장점
- 검색 속도가 매우 빨라질 수 있음
- 반드시 빨라지는 것은 아님
- 시스템 부하가 줄어, 시스템 전체의 성능이 향상됨
단점
- 인덱스가 데이터베이스 공간을 차지해서 추가적인 공간 필요
- 약 데이터베이스의 10% 내외의 공간이 추가로 필요
- 인덱스를 생성하는데 시간이 많이 소요됨
- 데이터의 변경 작업(
INSERT
,UPDATE
,DELETE
)이 자주 일어날 경우에는 성능이 많이 저하될 수 있음
종류
-
클러스터 형 인덱스
영어사전과 비슷한 개념
-
비클러스터 형 인덱스
일반 책의 '찾아보기'와 비슷한 개념
특징
- 클러스터형 인덱스는 테이블당 1개만 생성됨
- 비클러스터형 인덱스는 테이블당 여러 개 생성됨
- 클러스터형 인덱스는 행 데이터를 인데긋로 지정한 열에 맞춰서 자동 정렬함
- 제약 조건 없이 테이블 생성 시에는 인덱스를 만들 수 없음
- 인덱스가 자동 생성되기 위한 열의 제약 조건은 Primary Key와 Unique 뿐임
Primary Key 지정 시 자동으로 클러스터형 인덱스 지정 Unique Key 지정 시 자동으로 비클러스터형 인덱스 지정
인덱스 자동 생성
sp_helpindex 사용하기
USE tempDB;
CREATE TABLE tbl1 (
a INT PRIMARY KEY,
b INT UNIQUE,
c INT UNIQUE,
d INT
);
GO
EXEC sp_helpindex tbl1;
GO