본문 바로가기
데이터베이스/SQL

인덱스

by ADELA_J 2023. 5. 12.

- 데이터들이 많을때 전체를 다 찾아보기보다는 인덱스를 활용해 빠르고 쉽게 데이터를 찾을 수 있도록 도와주는 것.

- 인덱스는 기본 적으로 열 단위 생성됨.(복합 인덱스는 번외)

  ▶ 열을 기본 키로 설정하면 자동으로 인덱스가 생성됨.

 

- 인덱스가 없는 상태에서 '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