인덱스

고장난 고양이·2022년 8월 25일
0

데이터베이스

목록 보기
3/5
post-thumbnail

💾 데이터베이스 인덱스란?

인덱스는 SELECT를 사용해서 테이블을 조회할 때 결과를 빠르게 추출하도록 도와주는 기능입니다.

책을 예를 들자면, 책의 목차 및 찾아보기 기능처럼 찾아볼 내용의 알파벳이나, 가나다순으로 정렬되어있어서 쉽게 찾게하는것과 같습니다.
이처럼 인덱스는 데이터를 빠르게 찾도록 도와주는 도구입니다.

📌 인덱스의 장점 & 단점

(장점)

  • select 문으로 검색 시 속도가 매우 빨라집니다.
  • 그 결과 컴퓨터의 부담이 줄어서 전체 시스템의 기능 향상을 시켜줍니다.

(단점)

  • 인덱스도 공간을 차지하게 데이터베이스안에 추가적인 공간이 필요합니다.
  • 처음에 인덱스를 생성시 시간이 오래걸릴 수 있습니다.
  • select가 아닌 변경작업(insert,update,delete)가 자주 일어나면 오히려 성능이 나빠질수 있습니다.

📌 인덱스의 종류

크게 클러스터형 인덱스와 보조 인덱스 두가지로 나뉘어집니다.
클러스터형 인덱스 == 영어사전 , 보조인덱스 == 일반책의 뒤에 찾아보기

📚 클러스터형 인덱스

영어사전처럼 이미 알파벳순서로 정렬되어있습니다.

어떤열을 기본키로 지정하면 그 열을 자동으로 정렬합니다.

📚 보조 인덱스

일반책의 찾아보기와 같이 별도의 공간에 인덱스가 생성됩니다.

고유키로 지정하면 보조 인덱스가 생성되고 자동 정렬되지는 않습니다.

📚 고유 인덱스(Unique Index)

인덱스 값이 중복되지 않는다는 의미이고, 단순 인덱스는 인덱스의 값이 중복되어도 된다는 의미입니다.

기본 키나 고유 키로 지정하면 값이 중복되지 않으므로 고유 인덱스가 생성됩니다. 그외의 인덱스는 단순 인덱스로 생성됩니다.

📌 비교

클러스터형 인덱스보조인덱스
관련 제약조건기본키(Primary Key)고유키(Unique)
테이블당 개수1개여러개
정렬지정한 열로 정렬정렬 안됨
비유영어사전일반책의 찾아보기 페이지

인덱스(index)를 사용하면 좋은 경우

  • 규모가 작지 않은 테이블
  • INSERT, UPDATE, DELETE가 자주 발생하지 않는 컬럼
  • JOIN이나 WHERE 또는 ORDER BY에 자주 사용되는 컬럼
  • 데이터의 중복도가 낮은 컬럼

인덱스를 사용하는 것 만큼이나 생성된 인덱스를 관리해주는 것도 중요하다. 그러므로 사용되지 않는 인덱스는 바로 제거를 해주어야 한다. 

출처: https://mangkyu.tistory.com/96 [MangKyu's Diary:티스토리]

profile
개발새발X발일지

0개의 댓글