인덱스란?
책의 목차와 같은 역할을 한다.
책에 목차가 없다면 특정 내용을 찾기 위해 책을 전부 살펴봐야할 것이다.
하지만 목차를 보고 찾고자하는 내용의 단원, 페이지를 대략적으로 알 수 있다.
이렇게 인덱스는 대용량 데이터에서 특정 데이터를 찾는데 유용하다.
모든 상황에서 인덱스를 적용하는 것이 좋은 것은 아니다.
인덱스의 특징을 이해하고 상황에 맞게 적절하게 사용해야 성능 향상의 이점을 누릴 수 있다.
불필요한 인덱스를 만들면 오히려 인덱스 조회만 추가로 일어나는 역효과가 있을 수 있다.
인덱스의 장점과 단점
장점
SELECT문으로 검색하는 속도가 빨라진다.
검색 작업을 빠르게 처리하므로 전체 시스템의 성능 향상 효과가 있다.
단점
인덱스를 따로 저장해야하기 때문에 추가적인 메모리가 필요하다.
처음 인덱스를 만드는 데 시간이 오래 걸릴 수 있다.
인덱스의 종류
1. 클러스터형 인덱스
사전의 형식을 갖는다. 데이터가 정렬되어 있고 별도의 목차가 없다.
사전 자체가 목차의 역할을 하는 것과 같다.
2. 보조 인덱스
책의 목차와 비슷하다. 데이터와 별도로 저장해서 사용한다.
자동으로 생성되는 인덱스
1. 자동 정렬되는 클러스터형 인덱스
테이블에 기본키를 지정하면 기본키를 기준으로 클러스터형 인덱스가 자동 생성된다.
즉, 테이블은 기본키를 기준으로 자동 정렬되며 기본키는 테이블 당 1개만 존재하기 때문에 클러스터형 인덱스도 1개만 생성된다.
처음 테이블을 생성할 때 기본키를 지정하지 않으면 데이터는 입력된 순서대로 저장되지만 기본키를 지정하면 기본키를 기준으로 정렬된다.
--인덱스 없이 입력 순서대로 저장되는 테이블이 생성된다
CREATE TABLE table1 (
col1 INT,
col2 INT,
col3 INT
);
--아래 테이블을 생성하면 col1을 기준으로 클러스터형 인덱스가 생성된다
ALTER TABLE table1
ADD CONSTRAINT
PRIMARY KEY (col1);
2. 정렬되지 않는 보조 인덱스
테이블에 고유키를 지정하면 보조 인덱스가 생성된다.
보조 인덱스는 고유키와 마찬가지로 테이블에 여러 개 설정할 수 있다.
보조 인덱스는 책의 목차와 같아서 책(테이블)의 내용에 영향을 주지 않는다.
'개발공부 > 혼자공부하는 SQL' 카테고리의 다른 글
| [SQL] 인덱스 CREATE, DROP (0) | 2023.03.15 |
|---|---|
| [SQL] 인덱스의 내부 작동 원리와 구조 (0) | 2023.03.15 |
| [SQL] 뷰의 생성, 수정, 삭제 (0) | 2023.03.13 |
| [SQL] 테이블 제약조건(기본키, 외래키, 고유키) (0) | 2023.03.11 |
| [SQL] 테이블 만들기 (0) | 2023.03.11 |