DataBase

[DB] 인덱스(Index)

빅콜팝 2022. 10. 14. 00:25
728x90
반응형

1. 인덱스(Index)란?


인덱스는 데이터베이스 테이블에 대한 검색 속도를 높여주는 자료구조이다.
인덱스는 책에 있는 목차라고 생각하면 쉽게 이해할 수 있다.

특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적인 주소와 함께 저장되며,
컬럼의 값과 물리적 주소를 key, value 타입으로 저장한다.
인덱스 생성 컬럼을 where 조건으로 거는 등의 작업으로 인덱스를 태울 수 있다.

 

2. 인덱스(Index)의 장점과 단점


장점

- 테이블에 데이터들이 정렬이 되어있어서 검색하는 속도와 성능이 향상된다.
- where, order by, join, max, min 등에서 자주 사용되는 컬럼에서 사용 시 매우 효과적이다.

단점

- 인덱스를 관리하기 위한 추가 작업 및 저장 공간이 필요하다.
- 데이터를 정렬하면서 삽입, 삭제, 수정을 처리하기 때문에 수정 작업이 많은 경우 전체적인 성능 저하를 초래한다.

 

3. 인덱스(Index)가 유용한 경우


- 삭입, 수정, 삭제의 작업이 자주 일어나지 않는 컬럼
- where 절 또는 order by 및 join 등에 자주 쓰이는 컬럼
- 데이터의 중복도가 낮은 컬럼
- 많은 데이터가 담긴 테이블에서의 사용
=> 대체로 검색이 잦은 테이블에서의 PK(기본키)에 사용하는 것이 유리하다.

 

 

728x90
반응형

'DataBase' 카테고리의 다른 글

[DB] RDB와 NoSQL 차이  (1) 2022.10.13