Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DeFacto-Standard IT

DB Index가 무엇이고 활용방안? 본문

DB/References

DB Index가 무엇이고 활용방안?

defacto standard 2017. 11. 15. 23:40

서비스를 운영하며 시간이 지나면 DB에 대량의 데이터가 쌓일 수 있는데, 모든 데이터를 일일이 찾는 것 보다 인덱스를 설정해두면 원하는 데이터를 빠르게 찾을 수 있고, 더 크게 보면 시스템의 부하가 줄어들어서 시스템의 전체 성능이 향상된다.


단점 : 인덱스 생성에 시간이 많이 소요될 수 있다. 인덱스 자체가 DB공간을 차지하여 추가적 공간이 필요, 데이터의 CUD작업이 자주 일어날 경우 모든 인덱스를 수정하여야 하므로 이를 연산하느라 오히려 성능이 나빠질 수 있다.

 

레코드 수가 많은 경우, where절에 자주 사용되는 필드를 사용한다. 또는 조인 연산에 참여하거나 널 값이 많은 필드를 사용한다.

 

인덱스 종류 : B+, 복합, 해싱 인덱스

 

 

클러스터형 인덱스 -> 영어사전

테이블 당 1개만 생성 / 레코드를, 인덱스로 지정한 열을 기준으로 자동 정렬 / 영어사전처럼 책의 내용 자체가 순서대로 정렬이 되어 있어, 인덱스 자체가 책의 내용과 같음

 

비클러스터형 인덱스 -> 일반책의 찾아보기, 행 데이터를 인덱스로 지정한 열에 맞춰 자동 정렬

테이블 당 여러개 생성 가능 / 찾아보기가 있는 일반 책과 같다.

 

 

인덱스 생성

- 열 단위로 생성

- 하나의 열에 인덱스를 생성하거나 여러 열에 하나의 인덱스를 생성할 수 있다.

- 테이블 생성 시 하나의 열에 PK를 지정하면 자동으로 클러스터형 인덱스가 생성됨 (강제적으로 비클러스터형 인덱스 지정 가능)

- 제약 조건 없이 테이블 생성 시 인덱스를 만들 수 없으며 자동생성을 위한 제약 조건은 PK과 Unique 뿐이다.

 

Comments