본문 바로가기

정보처리산업기사 필기 공부/SQL_활용

인덱스 활용(SQL_활용)

 

 

인덱스 개요

 

1. 인덱스 개념

 인덱스는 데이터를 빠르게 찾을 수 있는 수단으로서, 테이블에 대한 조회 속도를 높여 주는 자료구조를 일컫는다. 인덱스는 다음 그림과 같이 테이블의 특정 레코드 위치를 알려주는 용도로 사용하는데, 이러한 인덱스는 자동으로 생성되지 않는다.

 

출처:ncs sql활용.pdf

PK 컬럼은 PK를 생성할 때 자동으로 인덱스가 생성된다. 즉, PK 컬럼은 PK를 생성할 때 자동으로 PK 인덱스가 생성된다.

예를 들어 위의 그림과 같은 테이블에서 일련번호를 기본키로 하는 경우, 일련 번호에 대한 인덱스는 자동으로 생성되나, 생년월일이나 이름을 기준으로 하는 인덱스는 자동으로 생성되지 않는다.

 

 

 

 

인덱스 사용

 

1. 인덱스 사용 주체

 그림에서 '이름' 컬럼에 대한 인덱스가 생성되어 있다면 데이터를 빠르게 찾을 수 있다. 이때 빠르게 찾는 행위의 주체는 DBMS이다. 즉, DBMS는 인덱스를 사용하여 빠른 검색을 수행한다. 이를 위해 DB사용자는 DBMS가 인덱스를 사용할 수 있게 준비해주어야 한다. 따라서 DB사용자 입장에서는 인덱스를 사용하는 개념보다는 준비하는 개념으로 접근해야 한다.

 

2. 인덱스 준비

DB 사용자가 인덱스에 대해 조작할 수 있는 방법으로는 '생성, 삭제 그리고 변경' 조작이 있다. 참고로 인덱스 조작 명령은 SQL 표준화에 포함되지 않아 DBMS 제품 공급사 마다 사용법이 약간씩 다르다.

 

 1)인덱스 생성

 CREATE [UNIQUE] INDEX <index_name> ON <table_name> (<column(s)>);

문법은 위와 같다.

 

각 파라미터가 의미하는 내용은

 

[UNIQUE] - 인덱스 걸린 컬럼에 중복값을 허용하지 않음

<index_name> - 생성하고자 하는 인덱스 테이블이름

<table_name> - 인덱스 대상 테이블이름

<column(s)> - 인덱스 대상 테이블의 특정 컬럼 이름(들) - 복수컬럼 지정 가능

 

 

2) 인덱스 삭제

 DROP INDEX <index name>;

<index name>은 생성된 인덱스 이름을 의미한다.

 

3) 인덱스 변경

ALTER [UNIQUE] INDEX <index name> ON <table name> (<column(s)>);

한 번 생성된 인덱스에 대해 변경이 필요한 경우는 드물다.

'정보처리산업기사 필기 공부 > SQL_활용' 카테고리의 다른 글

다중 테이블 검색(SQL_활용)  (0) 2020.04.19
뷰 활용(SQL_활용)  (0) 2020.04.19
데이터 사전 검색(SQL_활용)  (0) 2020.04.19
DCL(SQL_활용)  (0) 2020.04.19
DML (SQL_활용)  (0) 2020.04.19