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