IT 기술/DB

대용량 데이터베이스의 인덱스

gooooooood 2024. 12. 4. 22:47
반응형

Ⅰ. 검색 연산을 최적화 하기 위한 인덱스의 개요

가. 인덱스의 정의

정의 - 데이터베이스에 저장된 자료를 빠르게 조회하기 위해 테이블에 연관되어 독립적인 저장공간 보유 객체

 

나. 인덱스의 특징

특징 설명
성능향상 - 트랜잭션의 성능향상이 목적
- 조회 성능 향상이 주 목적
알고리즘 - 트리 구조, 해시 함수 등 알고리즘 적용
독립성 - 테이블에 저장구조와 별도로 인덱스만 저장 가능
Trade-Off - 조회와 나머지 성능을 고려하여 인덱스 생성

 

 

Ⅱ. 인덱스의 스캔 방식

스캔 종류 개념도 설명
인덱스
전체 스캔
- 인덱스의 모든 데이터 전체를 읽어오는 방법
- WHERE
인덱스
범위 스캔
- 인덱스의 일부 데이터의 범위를 지정하여 읽어오는 방법
- WHERE, JOIN
인덱스
고유 스캔
- 인덱스의 유일한 값을 검색하는 방법
- PRIMARY KEY, UNIQUE
인덱스
루스 스캔
- 인덱스의 일부 데이터의 범위를 지정하지 않고 일부만 읽어오는 방법
- WHERE절 LIKE
인덱스
병합 스캔
- 여러개의 인덱스를 병합하여 검색하는 방법
-  UNION ALL

 

 

Ⅲ. 인덱스의 종류

분류 기준 인덱스 설명
형태 트리 기반 인덱스 - 트리 기반으로 데이터 검색
- RDBMS는 대부분 B-tree
해쉬 기반 인덱스 - 해시 테이블 이용하여 데이터 검색
- =, <=, >= 연산자 이용 가능
비트맵 인덱스 - 최소 단위 비트 이용 컬럼값 저장
- ROWID 자동 생성 인덱스
목적 함수기반 인덱스 - 사용자 정의 함수 결과를 인덱스로 사용
조인 인덱스 - DW에서 조인 쿼리의 처리 가능
도메인 인덱스 - 사용자 정의 인덱스 타입 사용
- 텍스트, 카테고리 인덱스 등
구조 정적 인덱스 - 데이터 삽입 삭제에 따라 인덱스 내용은 변하지만 구조는 변하지 않는 기법
동적 인덱스 - 인덱스와 데이터 파일을 블록으로 구성하여 데이터 삽입 공간 준비해두는 기법
논리 논리적 인덱스 - 인덱스 생성 시 컬럼의 속성과 유형에 따라 분리
물리적 인덱스 - 인덱스 저장되는 데이터 구조에 따라 분리

- 인덱스는 DB 검색 속도 향상을 위한 객체로 목적에 따라 다양한 형태 존재

 

Ⅳ. 인덱스 선정 시 고려사항

고려사항 설명
인덱스 사용 여부 - 인덱스 사용 시 효과 여부 확인
- 인덱스 역할 중복 시 악영향 발생
이상적 구성 - 이상적인 구성으로 인덱스 역량 향상
- 최소 인덱스로 모든 엑세스 수용
실측자료 활용 - 가능한 실측자료 활용 종합 분석
- 엑세스 빈도, 분포도, 테이블 크기
반응형

'IT 기술 > DB' 카테고리의 다른 글

빅데이터 통합 관리  (0) 2024.12.04
데이터 독립성  (0) 2024.12.04
분산 데이터베이스의 투명성  (0) 2024.12.04
데이터옵스 (DataOps)  (0) 2024.12.04
데이터베이스 트랜잭션  (0) 2024.12.04