[Database] Database Index

Database Index

데이터베이스의 인덱스에 대해 알아보자.
DB에서 데이터를 가져올때 적지않은 시간이 걸린다.
DB 튜닝을 잘 하기 위해서는 INDEX에 대한 이해가 필수적이다.

Table of Contents

Index Basic

INDEX 색인 : 원하는 데이터를 빠르고 쉽게 찾을수 있도록 특정 순서에 따라 배열해놓은 목록.

Index의 특징

DB Index의 특징을 알아보기 위해 책의 Index와 비교해보도록 하겠다. book-index

Image Source

↑ return to TOC

속도

인덱스를 사용하는 이유 중 하나는 검색속도 향상에 있다.
인덱스를 생성한다는 것은 테이블이 하나 더 생성된다는 것이고 이는 용량이 증가된다는 것을 의미한다. DB의 용량이 증가되었음에도 불구하고 속도가 빨라지는 이유는 무엇일까?

Index를 안 사용할 시 : 원하는 데이터를 찾기 위해 특정 테이블의 첫번째 열부터 원하는 데이터를 찾을 때 까지 검색이 진행된다.
Index를 사용할 시 : 인덱스를 이용해 특정 부분부터 검색을 시작한다.

sorted-unsorted-books

Index의 손익 분기점

인덱스 사용이 반드시 속도 향상으로 결부되지 않는다. 인덱스에도 손익분기점이 존재한다.

↑ return to TOC

선정

인덱스를 최대한 효율적으로 사용하기 위해 적합한 컬럼 을 선정해 주어야 한다.

Do

Index는 SELECT 문의 WHERE, JOIN 에서 높은 성능을 발휘한다.

Don’t

INSERT, UPDATE, DELETE 가 빈번하게 발생 할 때는 INDEX를 사용하지 않는것이 좋다.

↑ return to TOC

종류

다양한 인덱스 종류가 있다.

B-Tree Index

Balanced Tree Index
가장 많이 사용되는 인덱스 구조.
대부분의 관계형 데이터베이스의 Default Index 타입이다.

트리의 형태를 가진다.

B-Tree

Image Source

B+Tree Index

Bitmap Index

데이터 값의 종류가 적고 동일한 데이터가 많을 때 사용.

bitmap

Image Source

Composite Index

여러 컬럼을 조합(결합)하여 인덱스를 구성하는 방법.
결합하려는 컬럼들의 순서가 중요하다.

WHERE 의 조건 컬럼 2개 이상이 AND 로 연결되어 사용되는 경우 → 결합 인덱스 사용.

composite-index

Image Source

↑ return to TOC

분류

다양한 인덱스 종류를 분류하는 법도 여러가지이다.
Index-Methods

Key

파일 조직

DATA 범위

↑ return to TOC

생성

인덱스는 열 단위로 생성된다.

↑ return to TOC

스캔

INDEX SCAN 방식은 아래와 같다.

↑ return to TOC