일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 사칙연산
- 카데인 알고리즘
- array
- Easy
- R
- hash table
- heroku
- input
- 자바 thread 실행 순서 제어
- Kadane's Algorithm
- 수학
- scanner
- 자바 스레드 실행 순서 제어
- JAVA11
- 자바입력
- SpringBoot 2
- Today
- Total
DeFacto-Standard IT
DB Index가 무엇이고 활용방안? 본문
서비스를 운영하며 시간이 지나면 DB에 대량의 데이터가 쌓일 수 있는데, 모든 데이터를 일일이 찾는 것 보다 인덱스를 설정해두면 원하는 데이터를 빠르게 찾을 수 있고, 더 크게 보면 시스템의 부하가 줄어들어서 시스템의 전체 성능이 향상된다.
단점 : 인덱스 생성에 시간이 많이 소요될 수 있다. 인덱스 자체가 DB공간을 차지하여 추가적 공간이 필요, 데이터의 CUD작업이 자주 일어날 경우 모든 인덱스를 수정하여야 하므로 이를 연산하느라 오히려 성능이 나빠질 수 있다.
레코드 수가 많은 경우, where절에 자주 사용되는 필드를 사용한다. 또는 조인 연산에 참여하거나 널 값이 많은 필드를 사용한다.
인덱스 종류 : B+, 복합, 해싱 인덱스
클러스터형 인덱스 -> 영어사전
테이블 당 1개만 생성 / 레코드를, 인덱스로 지정한 열을 기준으로 자동 정렬 / 영어사전처럼 책의 내용 자체가 순서대로 정렬이 되어 있어, 인덱스 자체가 책의 내용과 같음
비클러스터형 인덱스 -> 일반책의 찾아보기, 행 데이터를 인덱스로 지정한 열에 맞춰 자동 정렬
테이블 당 여러개 생성 가능 / 찾아보기가 있는 일반 책과 같다.
인덱스 생성
- 열 단위로 생성
- 하나의 열에 인덱스를 생성하거나 여러 열에 하나의 인덱스를 생성할 수 있다.
- 테이블 생성 시 하나의 열에 PK를 지정하면 자동으로 클러스터형 인덱스가 생성됨 (강제적으로 비클러스터형 인덱스 지정 가능)
- 제약 조건 없이 테이블 생성 시 인덱스를 만들 수 없으며 자동생성을 위한 제약 조건은 PK과 Unique 뿐이다.