클러스터형 인덱스 란 무엇입니까?


15

클러스터형 인덱스에 대한 간단한 설명이 필요합니다.

  • 클러스터형 인덱스 란 무엇입니까?
  • 클러스터형 인덱스 사용에 대한 모범 사례는 무엇입니까?

새 데이터는 항상 테이블 끝에 추가되므로 클러스터형 인덱스에서 날짜를 사용하는 것이 좋습니다.
랄프 윈터스

1
아마도 항상 그런 것은 아닙니다.
mrdenny

@mrdenny-그렇지 않을 때 자세히 설명해 주시겠습니까?
Ralph Winters

1
행이 순서대로 입력되지 않은 경우 테이블이 더 일반적으로 기본 키로 쿼리되는 경우 기본 키가 INT (또는 더 작음)이고 날짜 시간 클러스터 키보다 클러 스 터되지 않은 인덱스가 테이블에 많으면 효율성이 떨어집니다. is를 사용하는 것보다 date 열에서 테이블을 쿼리하지 않으면 클러스터링되지 않은 인덱스 만 사용되므로 클러스터링 키는 가치가 없습니다.
mrdenny

@mrdenny : 또한 테이블에 날짜 열이없는 경우 (마지막 열의 하위 집합 :)
ypercubeᵀᴹ

답변:


15

간단히 말해서 ...

전화 번호부 : 데이터는 인덱스 / 인덱스는 데이터입니다. 예를 들어, Amir Rezaei로 시작하겠습니다. 외부 조회가 필요하지 않습니다.

데이터베이스 용어로 :

테이블 데이터와 클러스터 된 인덱스는 동일합니다 (SQL Server, InnoDB, Oracle IOT).

모범 사례는 좁고 숫자이며 엄격하게 증가합니다 (IDENTITY 또는 자동 번호 열 생각). GUID와 같은 데이터 유형은 좋은 생각이 아닙니다

읽을 수있는 링크 (이 답변을 팽창시키지 않기 위해)

편집, 내 모범 사례 제안을 완전히 설명하려면 Eric Humphrey의 의견 : Index of Queening : Kimberly Tripp 의 링크를 따르십시오.



1
그리고 문맥없이 "모범 사례"를 적용하는 데 문제가 있습니다. 예를 들어, 자주 검색되는 큰 테이블의 기본 검색 기준이 날짜 범위 인 경우 클러스터 된 인덱스의 최적 위치는 기본 키가 아닌 검색되는 날짜입니다. 말하자면 테이블과 클러스터형 인덱스는 하나이며 약간 너무 단순화되었습니다. 데이터는 실제로 클러스터형 인덱스에 의해 지시 된 순서대로 저장됩니다. 무엇보다도 클러스터 된 인덱스는 전체 데이터 세트를 반환하는 범위 검색에 특히 유용합니다.
Russell Steen

2
@Russell Steen : 1. 나는 링크를 포함했다. 2. OP는 3에서이 대답을 어느 수준으로 쳤는지 생각해보아야했다. Eric Humphrey는 링크 생성을 제공했다. 우리는 경험이 많은 사람들이 알고 이해하는 것을 사례별로 살펴볼 수는 있지만 교육 또는 압도적으로 도울 수 있습니까?
gbn

당신이하는 말이 들립니다. 문제는 당신의 대답에 달려있는 것이 아니라, 자신보다 경험이 적은 사람들이 무언가를 인용하고 적용하는 데 도움이된다는 사실입니다. 그렇습니다. 우리는 교육을 받고 있으며 포스트에서 직접 더 많은 맥락을 제공하지 않고 모범 사례를 인용하는 것이 그 일을 잘하지 못한다고 주장합니다.
Russell Steen

2
오, 방금 SQL-Server태그를 보았지만 무시하십시오.
ypercubeᵀᴹ

3

레코드 자체가 클러스터형 인덱스가있는 필드별로 물리적으로 정렬되도록 데이터 자체에 대한 인덱스입니다. 따라서 테이블 당 하나의 클러스터형 인덱스 만 가질 수 있습니다.

비 클러스터형 인덱스는 조회 속도가 빠르지 않지만 테이블에 이러한 유형의 인덱스를 많이 가질 수 있습니다.


3
비 클러스터형 인덱스가 문제의 룩업에 적용되는 경우 비 클러스터형 인덱스가 룩업에 효율적일 수 있습니다.
Russell Steen

@Russell 인덱스가 데이터의 실제 정렬 순서를 강요했기 때문에 더 빠른 방법은 없습니다. SQL 또는 RDBMS가 필요한 정보를 찾는 더 간단하고 빠른 방법은 없습니다.
kacalapy

4
나는 더 빨리 말하지 않았다. 커버링 인덱스는 디스크의 별도 위치에있는 인덱스-IN ORDER의 선택에서 요청 된 모든 데이터를 갖습니다. 따라서 일치하는 포함 인덱스에 대한 선택이 테이블에 절대로 도달하지 않습니다.
Russell Steen

2
커버링 NCI는 더 작아서 읽을 페이지가 적고 더 빠릅니다.
Martin Smith

테이블에 하나의 클러스터형 인덱스 만있는 이유는 물리적 정렬이 아니고 인덱스 페이지는 항상 논리적으로 정렬되며 페이지의 연속 할당은 보장되지 않습니다. 클러스터형 인덱스는 테이블 자체이고 비 클러스터형 인덱스는 필수 열이있는 테이블의 복사본이므로 테이블 당 하나의 클러스터형 인덱스 만 가질 수 있습니다.
Manoj Pandey 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.