본문 바로가기
DataBase/MsSql

MSSQL 인덱스(INDEX) 설명 및 인덱스 종류

by 아우럼 2024. 7. 5.
반응형

Database 성능 향상을 위해서 자주 사용하는 index에 관해 설명하고 SQL SERVER에서 지원되는 INDEX 종류를 알아보겠습니다.

 

인덱스(INDEX)란?

  • 인덱스는 데이터가 가지고 있는 고유의 값으로 색인과 목록을 의미합니다. 
  • 인덱스는 데이터를 기록할 때 고유의 키값, 데이터의 이름, 데이터 크기 등 속성과 기록 장소를 표시합니다.
  • 인덱스는 별도의 공간에 키(Key)를 저장하고 검색 시 요청한 데이터를 빠르게 반환합니다.
  • INDEX는 Database에서 data 검색 시 속도를 높이기 위해서 사용하는 중요한 기술 중 하나입니다.
  • Clustered Index 하고 Non-Clustered Index를 차이점을 밑에 있는 그림을 보면 이해하기 쉽습니다.

인덱스(INDEX) 종류.

Clustered Index 특징.

  • Clustered Index를 보통 책으로 비유하여 설명하는데 책을 앞에 놓고 몇 페이지를 알고 있다면 해당 페이지로 바로 갈 수 있는 원리입니다.
  • Clustered Index는 해당 키값을 기반으로 테이블이나 뷰의 데이터 행을 정렬하고 저장합니다. 
  • Clustered Index는 테이블당 하나의 Clustered Index만 생성할 수 있습니다.
  • Clustered Index를 생성하면 테이블의 데이터 행이 해당 Index 키를 기준으로 물리적으로 재배열됩니다.
  • Clustered Index를 생성할 때는 업데이트가 자주 발생하지 않는 대용량 테이블에 적합합니다.

Clustered Index 그림으로 설명.

Clustered Index 설명.
Clustered Index 설명

Non-Clustered Index 특징.

  • Non-Clustered Index는 테이블에 저장된 물리적인 순서에 따라 데이터를 정렬하지 않습니다. 
  • 즉, 데이터 페이지에는 순서대로 정렬되어 있지 않습니다.
  • Non-Clustered Index는 테이블의 데이터를 그대로 두고 지정된 칼럼에 대해 정렬시킨 인덱스를 생성합니다. 데이터 페이지를 건드리지 않습니다.
  • Non-Clustered Index는 검색 속도는 느리지만, 데이터의 입력, 수정, 삭제는 빠릅니다.
  • Clustered Index는 테이블에 하나만 존재할 수 있지만, Non-Clustered Index는 여러 개 생성할 수 있습니다.

Non-Clustered Index 그림으로 설명.

Non-Clustered Index 설명.
Non-Clustered Index 설명.

 

반응형