데이터베이스 with MSSQL/SQL 입문
인덱스(INDEX)
코다람쥐
2022. 4. 8. 12:09
1. 개념
정의 : 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터
참고. 인덱스를 걸 때에는 데이터의 종류가 많은 것이 좋다.
- 클러스터드 인덱스 vs 넌클러스터드 인덱스
클러스터드 인덱스 (Clustered Index) |
- 순서에 따라 데이터가 정렬되어 저장되는 방식, 속도가 매우 빠르다. - 테이블 당 1개만 존재한다. |
넌클러스터드 인덱스 (Non-Clustered Index) |
- 키 값만 정렬되어 있고 실제 데이터는 정렬되지 않는 방식 |
2. 사용
-- 인덱스 생성
CREATE INDEX i1 ON accounts(accountName);
-- 겹치는 데이터가 없이 인덱스 생성
CREATE UNIQUE INDEX i1 ON accounts(accountName);
-- 클러스터드 인덱스로 생성
CREATE CLUSTERED INDEX i1 ON accounts(accountName);
-- 인덱스 삭제
DROP INDEX accounts.i1;
참고로 클러스터드 인덱스는 테이블 당 1개만 존재할 수 있기 때문에 기존에 클러스터드 인덱스가 있다면 데이터를 추출할 때 에러메시지가 뜬다.