본문 바로가기
SQL

[DB] 인덱스 간단히 개념잡기

by 다람이도토리 2021. 8. 23.

인덱스(Index)란?

인덱스는 데이터테이블의 검색 속도를 향상시키기 위한 자료구조이다. 테이블에서 원하는 정보를 한 테이블 내에서 검색하면 시간이 오래 걸리기 때문에 사전에 인덱스를 생성하여 빠르게 조회할 수 있다.

인덱스 직관적으로 이해하기

index(색인)은 책의 목차를 생각하면 된다.

국어사전처럼, 매우 두꺼운 책에 목차가 없다면? 우리는 모든 페이지를 하나하나 다 읽어가면서 정보를 찾아야 할 것이다.

하지만, 색인이 있다면 우선 색인 테이블에서 해당 정보를 찾아 범위를 축소 시키고, 그 범위 내에서만 해당 정보를 찾으면 될 것이다.

인덱스의 장점과 단점

장점

- 테이블을 조회하는 속도, 그리고 성능을 향상시킬 수 있다.
- 이에 따라 시스템에 가해지는 부하를 줄일 수 있다.

단점

- 인덱스를 관리하기 위해서는 별도의 테이블이 필요, 즉 별도의 저장공간 또한 필요하다.
- 추가 작업이 필요하다.
- 잘못 사용할 경우, 오히려 성능이 저하되는 역효과를 얻을 수 있다.(너무 많은 인덱스 사용 X)

 

인덱스 쿼리 예시

인덱스 생성

CREATE INDEX <Index name>
ON <Table name> (col1, col2, ...)

인덱스 삭제

ALTER TABLE <Table name> DROP INDEX <Index name>

인덱스 확인

SHOW INDEX FROM <Table name>

'SQL' 카테고리의 다른 글

[SQL] HackerRank - Contest Leaderboard  (0) 2021.09.01
[DB] 트랜잭션이란?  (0) 2021.08.24
[DB] Key 정리  (0) 2021.08.18
[SQL] Having 절  (0) 2021.07.05
[SQL] HackerRank - Ollivander's Inventory  (0) 2021.06.08