[Database] database 오라클 03 - Index

인덱스


인덱스는 기준점이 되어 조회를 쉽게 하게 만드는 것이다. 인덱스를 만드는 명령문은 CREATE를 사용한다.

CREATE [UNIQUE] INDEX 인덱스명 ON 테이블병(컬렁명 DESC/ASC)
CREATE UNIQUE INDEX 고객번호_index ON 고객(고객번호 DESC);

데이터베이스에 대해 깊히 이해하는 데이터베이스 관리자나 업무 이해가 높은 PL이 주로 인덱스를 설정한다. 인덱스는 SELECT 조회 성능을 올리기 위해 사용된다.
인덱스는 매우 중요한데 잘못 설정되면 데이터 조회가 꼬여 조회시간이 오래걸리고 이에 timeout이 걸려 에러를 뱉어내는 경우기 있기 때문이다. 그래서 데이터베이스 툴(SQL Developer나 Workbench)에서 먼저 쿼리를 실행해봐야한다. 어플리케이션 안에서는 더 느리게 실행된다. 그렇기 때문에 3초이내 실행되는 SELECT 쿼리만 웹 어플리케이션에 써야한다. 5초를 넘어가면 레드카드를 받고 3초가 넘어가면 옐로우 카드를 받는 거와 같다. 3초가 넘어가면 쿼리를 수정하라고 권고를 받는다. 그 때는 SQL 쿼리 튜닝, 인덱스 재설정, 데이터 베이스 튜닝을 하여 3초 이내로 만들어야 한다. 이때 인덱스가 중요한 역할을 한다.
인덱스 재구성은 다음과 같은 작업을 한다.

  • 조회되는 속성과 조건을 고려하여 인덱스 구성
  • 인덱스 추가 및 기존 인덱스의 열 순서 변경
  • IOT(index-Oragnized Table) 구성 고려
  • 불필요한 인덱스 제거

IOT : 일반적으로 인덱스가 있는 테이블을 조회할 때, 인덱스를 검색하여 주소를 얻으면 주소를 다시 찾아가는 과정을 거친다. 반면 IOT는 인덱스 안에 테이블 테이저를 직접 삽입하여 저장함으로써 주소를 얻는 과정이 생략되어 더욱 빠른 조회가 가능하다






© 2021.11. by 21thkafka

Powered by 21thkafka