DB에서의 인덱스(Index)

June Lee·2021년 2월 22일
0

Database

목록 보기
10/19

데이터의 인덱스를 생성하는 순간 자동으로 인덱싱되어 B*Tree 구조로 데이터가 저장된다. 인덱스가 없다면 처음부터 순차적으로 Full Scan하며 데이터를 찾아줘야한다.

cf.
사실 Oracle에서는 Primary Key의 경우 이를 가지고 자동으로 index가 생성되어 이를 이용해서 데이터를 찾기 때문에 Primary Key에 해당하는 데이터는 Full Scan하지 않는다.


인덱스를 사용하는 목적

1) 검색 속도 향상
2) 테이블의 크기가 변하더라도 일정한 검색 속도를 유지

인덱스 생성하는 방법

--index 이름 규칙
테이블명_컬럼명_idx
CREATE UNIQUE INDEX board_title_idx
	ON board(title);

Oracle SQL Developer에서는 F10을 통해 실행 계획을 살펴볼 수 있는데, title 컬럼에 대해 인덱스를 생성하기 전에는 Full Scan을 하지만, 인덱스를 생성한 후에는 Unique Scan을 하는 것을 살펴볼 수 있다.

인덱스는 스캔을 빠르게 하기 위해 만든 객체이다. 그런데 인덱스 자체에 키와 매핑 주소 값을 별도로 저장하여, 테이블에 데이터를 입력하거나 삭제, 수정할 때 인덱스에 저장된 정보도 이에 따라 생성, 수정이 이루어진다.
따라서 인덱스는 너무 많이 만들면 INSERT, DELETE, UPDATE 시에 부하가 발생한다.

profile
📝 dev wiki

0개의 댓글

관련 채용 정보