HeidiSQL/SQL_ex
INDEX
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