인덱스 란?
인덱스는 테이블 또는 뷰에서 행을 가져 오는 속도를 높이는 데이터베이스의 하나 이상의 열에서 빌드 된 키입니다. 이 키는 Oracle, SQL Server, MySQL 등과 같은 데이터베이스가 키 값과 관련된 행을 빠르게 찾는 데 도움이됩니다.
두 가지 유형의 인덱스는 다음과 같습니다.
- 클러스터형 인덱스
- 비 클러스터형 인덱스
이 자습서에서 , 학습 할 내용 :
- 색인이란?
- 클러스터형 인덱스 란 무엇입니까?
- 비 클러스터형 인덱스 란 무엇입니까?
- 클러스터형 인덱스의 특성
- 비 클러스터형 인덱스의 특성
- 클러스터형 인덱스의 예
- 비 클러스터형 인덱스의 예 클러스터형 인덱스
- 클러스터형 인덱스와 비 클러스터형 인덱스의 차이점
- 클러스터형 인덱스의 장점
- 비 클러스터형 인덱스의 장점
- 클러스터형 인덱스의 단점 인덱스
- 비 클러스터형 인덱스의 단점
클러스터형 인덱스 란 무엇입니까?
클러스터 인덱스는 데이터 행을 정렬하는 인덱스 유형입니다. 키 값에 대한 표에서. 데이터베이스에는 테이블 당 하나의 클러스터형 인덱스 만 있습니다.
클러스터형 인덱스는 데이터가 한 가지 방식으로 만 정렬 될 수있는 테이블에 저장되는 순서를 정의합니다. 따라서 모든 테이블에 대해 단일 클러스터형 인덱스 만있을 수 있습니다. RDBMS에서 일반적으로 기본 키를 사용하면 특정 열을 기반으로 클러스터형 인덱스를 만들 수 있습니다.
비 클러스터형 인덱스 란 무엇입니까?
비 클러스터형 인덱스는 데이터를 한 위치에 저장하고 인덱스를 다른 위치에 저장합니다. 인덱스에는 해당 데이터의 위치에 대한 포인터가 포함됩니다. 비 클러스터형 인덱스의 인덱스가 서로 다른 위치에 저장되므로 단일 테이블에 많은 비 클러스터형 인덱스가있을 수 있습니다.
예를 들어, 책은 하나 이상의 색인을 가질 수 있습니다. 처음에 하나는 책 단위의 내용을 표시하는 반면 두 번째 색인은 사전 순으로 용어 색인을 표시합니다.
비 클러스터링 인덱스는 테이블의 비 순서화 필드에 정의되어 있습니다. 이러한 유형의 인덱싱 방법은 기본 키로 할당되지 않은 키를 사용하는 쿼리의 성능을 향상시키는 데 도움이됩니다. 비 클러스터형 인덱스를 사용하면 테이블에 대한 고유 키를 추가 할 수 있습니다.
KEY DIFFERENCE
- 클러스터 인덱스는 테이블의 데이터 행을 키 값에 따라 정렬하는 인덱스 유형이며 비 클러스터형 인덱스는 데이터를 저장합니다. 한 위치에서 다른 위치에서 인덱스.
- 클러스터형 인덱스는 인덱스의 리프 노드에 데이터 페이지를 저장하는 반면 비 클러스터형 인덱스 방법은 인덱스의 리프 노드에 데이터 페이지를 저장하지 않습니다.
- 클러스터 인덱스는 필요하지 않습니다. 비 클러스터형 인덱스는 추가 디스크 공간이 필요한 반면, 비 클러스터형 인덱스는 추가 디스크 공간이 필요합니다.
- 클러스터형 인덱스는 더 빠른 데이터 액세스를 제공하는 반면 비 클러스터형 인덱스는 더 느립니다.
클러스터형 인덱스의 특성
- 기본 및 정렬 된 데이터 저장소
- 색인에 대해 하나 이상의 열만 사용
- 도움말 데이터와 인덱스를 함께 저장
- 조각화
- 작업
- 클러스터형 인덱스 스캔 및 인덱스 검색
- 키 조회
비 클러스터형 인덱스의 특성
- 키 값만 저장
- 힙 / 클러스터형 인덱스 행에 대한 포인터
- 보조 데이터 허용 액세스
- 데이터 연결
- 인덱스 스캔 및 인덱스 검색 작업
- 비 테이블 또는 뷰에 대한 클러스터형 인덱스
- 비 클러스터형 인덱스의 모든 인덱스 행에는 비 클러스터형 키 값과 행 로케이터가 저장됩니다.
클러스터형 인덱스의 예
아래 예에서 SalesOrderDetailID는 클러스터형 인덱스입니다. 데이터 검색을위한 샘플 쿼리
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
비 클러스터형 인덱스의 예
아래 예제에서 비 클러스터형 인덱스는 다음과 같이 OrderQty 및 ProductID에 생성됩니다.
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
다음 쿼리는 클러스터형 인덱스에 비해 더 빠르게 검색됩니다.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
클러스터링 간의 차이점 인덱스 및 비 클러스터형 인덱스
매개 변수 | 클러스터형 | 비 클러스터형 |
---|---|---|
사용 대상 | 주문에 따라 레코드를 정렬하고 클러스터형 인덱스를 메모리에 물리적으로 저장할 수 있습니다. . | 비 클러스터형 인덱스는 데이터 행에 대한 논리적 순서를 만드는 데 도움이되며 실제 데이터 파일에 대한 포인터를 사용합니다. |
저장 방법 | 인덱스의 리프 노드에 데이터 페이지를 저장할 수 있습니다. | 이 인덱싱 방법은 인덱스의 리프 노드에 데이터 페이지를 저장하지 않습니다. |
크기 | 클러스터형 인덱스의 크기가 상당히 큽니다. | 비 클러스터형 인덱스의 크기는 클러스터형 인덱스에 비해 작습니다. |
데이터 액세스 | 더 빠름 | 클러스터형 인덱스에 비해 느림 |
추가 디스크 공간 | 필요하지 않음 | 색인을 별도로 저장하는 데 필요함 |
키 유형 | 기본적으로 테이블의 기본 키는 클러스터형 인덱스입니다. | 복합 키 역할을하는 테이블에 대한 고유 한 제약 조건과 함께 사용할 수 있습니다. |
주요 기능 | 클러스터형 인덱스는 데이터 검색 성능을 향상시킬 수 있습니다. | 조인에 사용되는 열에 생성되어야합니다. |
클러스터형 인덱스의 이점
클러스터형 인덱스의 장단점은 다음과 같습니다.
- 클러스터형 인덱스는 최대, 최소, 개수 유형 쿼리를 사용하는 범위 또는 그룹화에 이상적인 옵션입니다.
- 이 유형의 인덱스에서 검색은 데이터의 특정 지점으로 바로 이동할 수 있으므로 거기에서 순차적으로 읽을 수 있습니다.
- 클러스터형 인덱스 방법은 위치 메커니즘을 사용하여 범위의 시작 부분에서 인덱스 항목을 찾습니다.
- 검색 키 값의 범위를 요청할 때 범위 검색에 효과적인 방법입니다.
- 페이지 전송을 최소화하고 캐시 적중을 최대화하는 데 도움이됩니다.
비 클러스터형 인덱스의 장점
비 클러스터형 인덱스 사용의 장점은 다음과 같습니다.
- 비 클러스터링 인덱스가 도움이됩니다. 데이터베이스 테이블에서 데이터를 신속하게 검색합니다.
- 클러스터형 인덱스와 관련된 오버 헤드 비용을 피하는 데 도움이됩니다.
- 테이블에는 RDBMS에서 클러스터되지 않은 인덱스가 여러 개있을 수 있습니다. 따라서 둘 이상의 인덱스를 만드는 데 사용할 수 있습니다.
클러스터형 인덱스의 단점
다음은 클러스터형 인덱스 사용의 장단점입니다.
- 많은 비 순차적 삽입 order
- 클러스터형 인덱스는 데이터 페이지와 인덱스 페이지를 포함하는 많은 지속적인 페이지 분할을 생성합니다.
- 삽입, 업데이트 및 삭제를위한 SQL에 대한 추가 작업
- 클러스터형 인덱스는 클러스터형 인덱스의 필드가 변경되면 레코드를 업데이트하는 데 더 오래 걸립니다.
- 리프 노드는 대부분 클러스터형 인덱스의 데이터 페이지를 포함합니다.
비 클러스터형 인덱스의 단점
다음은 비 클러스터형 인덱스 사용의 장단점입니다.