본문 바로가기
면접 대비 프로그래밍 지식

[데이터베이스] View와 INDEX

by 기초백과 2021. 4. 13.

데이터베이스를 사용하다보면 과도한 조인의 사용이나

잘못된 설계로 인한 성능의 저하가 발생하곤 합니다.

 

이러한 성능 저하를 최소화하기 위해선 데이터베이스 튜닝이 필요합니다.

이번 게시글은 그 방법 중에서도 View와 INDEX를 알아보겠습니다.

 

뷰(View)

특징

- 하나 이상의 테이블로부터 유도되어 만들어진 가상 테이블

- 저장 장치에 물리적으로 존재하지 않음

- 정의된 뷰를 새로운 뷰의 정의에 사용할 수 있음

목적

- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위한 경우

- 데이터 보정 작업, 처리과정 시험 등 임시적인 작업 용도

- 조인문의 사용을 최소화하여 사용자의 편의성을 최대화

 

장점

- 논리적 데이터 독립성을 제공(응용 프로그램 <-> 데이터베이스)

- 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원

- 사용자의 데이터 관리를 간단하게 만듬

- 명령문이 간단해지게 만듬

- 접근 제어를 통한 보안의 제공

 

단점

- 독립적인 인덱스를 가질 수 없음

- 뷰의 정의를 변경할 수 없음(ALTER문 사용 불가)

- 뷰에 구성된 내용에 대한 DML문의 사용에 제약이 따름

 

인덱스(INDEX)

특징

- 데이터를 검색할때 보다 빠르게 결과를 반환하도록 색인하여 도움

- 기본키를 생성하는 경우 기본키에 대한 칼럼은 자동적으로 INDEX 생성

- 이 또한 물리적인 공간을 차지하므로 모든 칼럼에 인덱스를 적용해선 안됨

  (자주 검색에 사용되는 칼럼에 적용을 추천)

인덱스의 종류

유형 설명
순서 인덱스 데이터가 정렬된 순서로 인덱스 관리
해시 인덱스 해시 함수에 의하여 직접 데이터에 키값으로 접근하는 인덱스
비트맵 인덱스 수정 변경이 적은 경우에 유용
함수기반 인덱스 일반 사용자 정의 함수의 결과를 인덱스로 사용
단일 인덱스 하나의 컬럼으로만 인덱스를 지정
결합 인덱스 복수개의 컬럼을 이용하여 인덱스 지정
클러스터드 인덱스 저장된 데이터의 물리적 순서에 따라 인덱스 지정