인덱스
- 추가적인 저장 공간을 활용해서 데이터베이스의 데이터를 탐색하는 속도를 높이기 위해 사용
인덱스 사용 목적
- 테이블의 다수 레코드들을 빠르게 검색하기 위해 사용
- 수정, 삭제, 생성은 성능 하락할 수도 있다.
인덱스 구조
클러스터 인덱스
- 테이블 당 1개의 컬럼만 설정 가능 ( 자동으로 해당 컬럼을 기준으로 정렬)
- 레코드를 인덱스에 맞춰 정렬
- primary key 생성 시 자동으로 생성되고 데이터 변경 시 항상 정렬 유지
- 클러스터 인덱스를 사용하면 모든 보조 인덱스가 primary key를 포함
비클러스터 인덱스
- 테이블 당 여러 개 칼럼 설정 가능
- 테이블 페이지를 정렬하지 않아서 더 많은 공간 차지
- 데이터 행과 분리된 구조
B-tree 알고리즘
- b-tree 자료구조를 이용한 인덱스
- root node, branch node, leaf node
- 노드의 각 key에 따라 데이터를 분류
- 각 노드마다 해당 키 값에 데이터 주소를 담고 있다.
B+tree 알고리즘
- leaf node에만 key와 data를 저장하고 leaf node는 linked list로 연결되어 있다.
Bitmap 알고리즘
- 종류가 적고 데이터가 많을 경우 사용
- 1 or 0으로 데이터를 표시
Hash 알고리즘
- 키 값을 해시로 값을 구해 버킷의 위치를 찾을 수 있는 인덱스 알고리즘
'DataBase' 카테고리의 다른 글
Redis & Memcached (0) | 2023.03.02 |
---|---|
RDBMS & NoSQL (0) | 2023.03.01 |
Normalization (0) | 2023.02.28 |
Transaction (0) | 2023.02.27 |
Index (0) | 2023.02.26 |