본문 바로가기
DBMS

[이론 정리] 옵티마이저 간단하게 보기, 정의 & 방식 / 인덱스

by code cleaner 2022. 9. 18.
반응형

옵티마이저(optimizer)란?

실행 계획에 의한 정해진 우선순위 또는 통계 정보를 이용하여 select 문의 질의 성능이 최적화될 수 있도록 실행 계획을 수립하는 데이터베이스 시스템 요소


옵티마이저 방식

구분 RBO CBO
개념 사전에 정의된 규칙 기반 계획 최소 비용 계산, 실행 계획 수립
기준 실행 우선순위 액세스 비용
성능 사용자의 SQL 작성 숙련도 옵티마이저 예측 성능
특징 실행 계획의 예측이 용이함 저장된 통계 정보의 활용
고려 사항 저효율, 사용자의 규칙 이해도 예측 복잡, 비용 산출 공식 정확성

인덱스란?

데이터를 찾기 위한 '색인'으로 데이터의 주소록이라고 할 수 있음

데이터를 빠르고 효율적으로 조회하기 위해 사용하는 것으로, 데이터베이스 시스템에 의해 자동으로 생성되기도 하고 사용자가 수동으로 생성하기도 함


인덱스 특징

* 테이블의 데이터 값에 빠르게 액세스하도록 하는 데이터베이스 객체임

* 데이터를 빠르게 찾을 수 있기 때문에 디스크 액세스 횟수를 줄일 수 있음

* 데이터베이스 시스템이 인덱스를 자동으로 사용하고 유지 보수하므로 사용자는 인덱스를 직접 조작할 필요가 없음

* 언제든지 생성하거나 삭제할 수 있으며 테이블이나 다른 인덱스에 영향을 주지 않음


인덱스 종류

1) B트리

* 데이터의 종류가 많고 동일한 데이터가 적은 경우에 주로 사용

* 루브 블록부터 브랜치 블록, 리프 블록까지 사용자가 원하는 값을 순차적으로 찾아가는 트리 기반 인덱스

종류 설명 사용 예
unique index 중복 데이터가 없는 경우 사용 기본 키, 유일 키 데이터
non-unique index 중복 데이터 있는 경우에 빠른 검색 결과 보장 인덱스가 필요한 일반적인 데이터
descending index 내림차순 데이터 값으로 인덱스 생성 매출, 최근 일자
composite index 여러 열을 합쳐서 하나의 인덱스 생성 여러 조건이 필요한 경우
ex) 고객번호와 매출

 

2) 비트맵

* 데이터의 종류가 적고 동일한 데이터가 많은 경우 주로 사용

* 데이터 변경 빈도가 낮은 경우가 유리함

* 예시) 가입여부(Y/N), 성별(M/F) 등

반응형