인덱스
- SQL 명령문의 처리 속도를 향상시키기 위해 칼럼에 대해 생성하는 객체
- 포인트를 이용하여 테이블에 저장된 데이터를 랜덤 액세스 하기 위한 목적으로 사용
- 인덱스의 종류
- 고유 인덱스
- 비고유 인덱스
- 단일 인덱스
- 결합 인덱스
- DESCENDING INDEX
- 함수 기반 인덱스
인덱스의 구조
- 인덱스의 내부 구조는 B*-트리 형식으로 구성

인덱스의 효율적인 사용 방법
- 인덱스가 효율적인 경우
- WHERE 절이나 조인 조건절에서 자주 사용되는 칼럼
- 전체 데이터 중에서 10~15%이내의 데이터를 검색하는 경우
- 두 개 이상의 칼럼이 WHERE 절이나 조인 조건에서 자주 사용되는 경우
- 테이블에 저장된 데이터의 변경이 드문 경우
- 열에 널 값이 많이 포함된 경우, 열에 광범위한 값이 포함된 경우
- 인덱스 생성
CREATE [UNIQUE] INDEX index
ON table (column1 [ASC|DESC] [, column2 [ASC|DESC], ...]);
-- UNIQUE : 고유인덱스 시정
-- ASC|DESC : 인덱스 키를 오름차순 또는 내림차순으로 정렬
인덱스의 종류 및 생성 방법
고유 인덱스(unique index)
- 유일한 값을 가지는 칼럼에 대해 생성하는 인덱스로 모든 인덱스 키는 테이블의 하나의 행과 연결
-- 부서 테이블에서 name 칼럼을 고유 인덱스로 생성
-- 만일 부서 이름이 중복되면 고유 인덱스가 생성되지 않음
CREATE UNIQUE INDEX idx_dept_name
ON department(dname);