Search
Duplicate
2️⃣

인덱스란?

: 인덱스는 일반적으로 맨 끝에 있는 찾아보기로 설명됨, 책의 마지막의 찾아보기가 인덱스에 비유된다면 책의 내용은 데이터 파일에 해당
: DBMS에서 인덱스는 데이터의 저장 성능을 희생하고 그 대신 데이터의 읽기 속도를 높이는 기능, WHERE 조건절에 사용되는 컬럼이라고 모두 인덱스로 생성하면 데이터 저장 성능이
저하되고 인덱스의 크기가 비대해져 오히려 역효과만 불러올 수 있다.
인덱스의 종류
역할별
프라이머리 키
: 프라이머리 키는 이미 잘 아는 것처럼 그 레코드를 대표하는 칼럼의 값으로 만들어진 인덱스
: 이 칼럼은 테이블에서 해당 레코드를 식별할 수 있는 기준값이 되기 때문에 이를 식별자라고 부름, NULL 값을 허용하지 않으며 중복을 허용하지 않는 것이 특징
보조 키
: 프라이머리 키를 제외한 모든 인덱스를 뜻하며 유니크 인덱스는 프라이머리 키와 성격이 비슷하며 프라이머리 키를 대체할 수 있음
데이터 저장 방식별
B-Tree 인덱스
: 가장 일반적으로 많이 사용되는 인덱스 알고리즘으로 칼럼의 값을 변형하지 않고 기존값을 이용해 인덱싱하는 방법
: 위치 기반 검색을 지원하기 위한 R-Tree 인덱스 알고리즘도 있지만 B-Tree의 응용 알고리즘으로 봄
Hash 인덱스
: 칼럼의 값으로 해시값을 계산해서 인덱싱하는 알고리즘으로 매우 빠른 검색을 지원
: 하지만 값을 변형하여 인덱싱하므로 전방 일치와 같이 값의 일부만 검색하거나 범위를 검색할 때는 사용할 수 없음
: 주로 메모리 기반의 데이터베이스에서 많이 사용
데이터 중복 허용 여부별
유니크 인덱스
유니크하지 않은 인덱스
: 옵티마이저의 경우 유니크 인덱스에 대해 동등 조건으로 검색한다는 것은 항상 하나의 데이터만 찾으면 더 이상 찾지 않아도 된다고 알려줌
기능별
전문 검색용 인덱스
공간 검색용 인덱스