ldh1123 2023. 3. 19. 18:55

목차


 INDEX

데이터 베이스 테이블에 대한 검색 속도를 높여주는 자료 구조

인덱스 생성 시 데이터를 오름차순으로 정렬


 

 INDEX의 종류

클러스터 인덱스 (Clustered Index) 

PK생성 시 자동으로 생성되는 인덱스

테이블 당 1개만 존재

 

보조 인덱스 (Secondary Index) 

개발자가 필요에 따라 지정하여 생성하는 인덱스

복수 설정 가능


 

 INDEX의 장점

테이블을 조회하는 속도와 그에따른 성능 향상

전반적인 시스템의 부하 감소


 

 INDEX의 단점

인덱스를 관리하기 위해 DB의 약 10%에 해당하는 추가 저장공간이 필요

인덱스를 관리하기 위해 추가 작업이 필요

인덱스 관리에 미흡하면 오히려 성능 저하


 

 INDEX 사용시 주의점

INSERT, UPDATE, DELETE가 빈번하게 일어나는 테이블은 주의

검색하고자 하는 데이터가 테이블의 10~15% 이하 일 경우 가장 효율적

속도 향상을 위해서는 우선 쿼리를 좀 더 효율적으로 짜는 방향을 고려(인덱스는 최후의 수단)

인덱스를 추가 했다면 대량의 데이터로 해당 테이블의 CRUD 테스트 필요

사용하지 않는 인덱스는 제거

FK를 지정한 열은 자동으로 FK 인덱스가 생성 (DBMS에 따라 상이함)


 

INDEX를 사용하기 좋은 상황

규모가 작지 않은 테이블

INSERT, UPDATE, DELETE가 자주 발생하지 않는 칼럼

JOIN이나 WHERE 또는 ORDER BY에 자주 사용되는 칼럼

테이터의 중복도가 낮은 칼럼


 

 INDEX 생성

CREATE INDEX 인덱스명
	ON 테이블(컬럼);
CREATE INDEX 인덱스명
	ON 테이블(컬럼1,컬럼2...);

 

 INDEX 제거

DROP INDEX 인덱스명;

 

 INDEX 확인

SHOW INDEX
FROM 테이블;

 

Github

Link