[DB] index

개발자·2021년 1월 6일
0

DB

목록 보기
1/9
post-thumbnail
post-custom-banner

index

  • 데이터베이스에서 테이블에 대한 검색 속도를 높여주는 자료 구조로 책의 색인 기능이라고 할 수 있다. 모든 데이터를 다 읽어 원하는 결과를 검색하려면(full scan) 많은 시간이 걸려 효율성이 떨어지기 때문에 인덱스를 사용한다.

  • 일반적으로 B+-Tree 인덱스 알고리즘을 사용한다.

index 종류

  • 키에 따른 분류
    - Primary Index : 기본키를 포함하는 인덱스
    - Secondary Index : 기본키를 포함하지 않는 인덱스
  • 파일 구성에 따른 인덱스
    - Clustered Index : 데이터 레코드의 물리적 순서가 인덱스 순서와 비슷하게 구성된 경우
    - Unclustered Index : 비슷하게 구성되지 않은 경우

등등..

고려사항

  • index는 검색(SELECT)의 경우에 최적화된 기능이다.
  • INSERT, DELETE 등 데이터 변경이 많은 경우엔 사용하지 않는 것이 좋다.
  • WHERE 절이나 ORDER BY 절에 자주 사용되는 컬럼으로 구성하는 것이 좋다.
  • 원하는 결과가 적은 컬럼에 인덱스를 걸어주는 것이 좋다.
  • 인덱스를 너무 많이 생성하면 오히려 성능을 떨어뜨린다.

사용 방법

MY SQL

CREATE INDEX [인덱스명] ON [테이블명](컬럼1, 컬럼2...)

ORACLE

CREATE INDEX [인덱스명] ON [테이블명](컬럼1, 컬럼2...)
profile
log.info("공부 기록 블로9")
post-custom-banner

0개의 댓글