- 데이터들이 많을때 전체를 다 찾아보기보다는 인덱스를 활용해 빠르고 쉽게 데이터를 찾을 수 있도록 도와주는 것.
- 인덱스는 기본 적으로 열 단위 생성됨.(복합 인덱스는 번외)
▶ 열을 기본 키로 설정하면 자동으로 인덱스가 생성됨.
- 인덱스가 없는 상태에서 'first_name'이 'Mary'인 사람을 찾아보면....
SELECT * FROM indextbl WHERE first_name = 'Mary';
EXPLANIN SELECT * FROM indextbl WHERE first_name = 'Mary';
전체를 다 찾아서 Mary인 사람을 조회하게 되는데,
앞에 EXPLAIN을 적으면 쿼리문이 어떻게 실행되는지 실행 계획(execution plan)'내용을 볼 수 있다.
- type = All 인 경우에는
인덱스를 사용하지 않고 테이블 전체를 검색했다는 뜻 (테이블 풀 스캔이라고 함)
그럴땐 인덱스를 설정
▼ 인덱스이름 idx_indextbl_firstname은 indextbl 테이블의 first_name열에 생성된 색인이 된다.
CREATE INDEX idx_indextbl_firstname ON indextbl(first_name);
- type : ref 로 바뀌고. 이는 인덱스를 사용해서 결과를 찾아냈다는 의미.
▶ Primary Key 가 설정된 tbl에서는 굳이 인덱스를 설정할 필요가 없음(이미 설정이 되어있기 때문에)
'데이터베이스 > SQL' 카테고리의 다른 글
SQL DISTINCT, ORDER BY (0) | 2023.08.27 |
---|---|
SQL SELECT, * , AS, 연결연산자(||) 사용하기 (1) | 2023.08.27 |
Final Project - Maria DB (0) | 2023.05.12 |
Maria DB 기본키(1) : 외래키(N) (0) | 2023.04.21 |
DB 모델링과 필수 용어 (0) | 2023.04.16 |