인덱스
- 인덱스는 데이터를 빠르게 찾을 수 있도록 도와주는 도구입니다.
- 실무에서는 현실적으로 인덱스 없이 데이터 베이스 운영이 불가능하다고 합니다.
- 인덱스는 클러스터형 인덱스와 보조 인덱스가 있습니다.
- 책 뒤의 찾아보기는 색인, 인덱스라고도 부릅니다.
- 고유 인덱스는 값이 중복되지 않는 인덱스를 말합니다.
테이블 인덱스의 정보를 확인하는 방법
SHOW INDEX 문을 사용하면 인덱스 정보가 확인됩니다.
SHOW INDEX FROM 테이블_이름;
예시) member 테이블에서 첫번째 열을 기본키로 지정했을때(table_1) 인덱스 정보 확인하기
SHOW INDEX FROM table1;
인덱스의 장점과 단점
장점
- 적절한 인덱스를 생성 하고 인덱스를 사용하면 기존보다 아주 빠른 응답속도를 얻을수 있습니다.
- SELECT 문으로 검색하는 속도가 매우 빨라집니다.
- 컴퓨터의 부담이 줄어들어 전체 시스템의 성능이 향상됩니다.
단점
- 인덱스도 공간을 차지해서 데이터베이스 안에 추가적인 공간이 필요합니다.
- 처음에 인덱스를 만드는게 시간이 오래 걸릴 수 있습니다.
- 변경작업이 자주 일어나면 오히려 성능이 나빠질수 있습니다.
클러스터형 인덱스
- 기본 키로 지정하면 자동 생성되며 테이블에 1개만 만들수 있습니다.
(기본키는 테이블에 하나만 지정할수 있기 때문입니다.) - 기본 키로 지정한 열을 기준으로 자동 정렬됩니다.
- 영어사전과 비슷합니다.
사진에 있는 Key_name 부분에 PRIMARY라고 써 있는데 이게 자동으로 생성된 인덱스라는 의미이고 이것이
클러스터형 인덱스 입니다.
자동으로 정렬되는 클러스터형 인덱스
아래 코드는 기본키를 제거한 후에 mem_name 열을 기준으로 다시 클러스터형 인덱스를 생성하는 것입니다.
(주의 할점으로 원래 있던 member 테이블에서 외래 키가 필요했으므로 제거후 다시 만들어주셔야 합니다.)
ALTER TABLE member DROP PRIMARY KEY;
ALTER TABLE member
ADD CONSTRAINT
PRIMARY KEY(mem_name);
SELECT * FROM member;
보조 인덱스
- 고유 키로 지정하면 자동 생성되며 여러개를 만들 수 있지만 자동정렬은 되지 않습니다.
- 일반 책 뒤의 찾아보기와 비슷합니다.
CREATE TABLE table2 (
col1 INT PRIMARY KEY,
col2 INT UNIQUE,
col3 INT UNIQUE,
col4 INT UNIQUE
);
SHOW INDEX FROM table2;
사진에 있는 Key_name 부분에 col2, col3, col4 라고 열이름이 써져 있는데 이게 보조인덱스 입니다.
'학습단 > SQL 학습단' 카테고리의 다른 글
혼공스 18일차(인덱스 실제 사용) (0) | 2023.08.10 |
---|---|
혼공스 17일차(인덱스 내부 작동) (0) | 2023.08.09 |
4주차 완료 (0) | 2023.07.29 |
혼공스 15일차(가상의 테이블 뷰) (0) | 2023.07.28 |
혼공스 14일차(제약조건으로 테이블을 견고 하게 만들기) (0) | 2023.07.27 |