1
우리가 알다시피, 클러스터 된 인덱스가 생성 될 때 인덱스 키 데이터는 B- 트리 구조에 저장됩니다. B- 트리의 Bottom 레벨은 테이블에 대한 실제 데이터 행을 포함하는 리프 노드이며 모두 리프 노드는 다음과 이전 리프 노드 을 가리 킵니다. 이중 링크리스트를 사용하여 리프 노드를 연결하는 목적을 알고 싶습니다. 나는 잎을 노드를 연결하는 이중 연결리스트를 사용하는 목적을 알고 싶어 내 질문에리프 노드가 클러스터 된 인덱스로 서로 연결된 이유는 무엇입니까?
메커니즘을 설명 할 수있는 다른 장점이 있습니까? –
@RebornXu : "효율성"은 여기에 절제되어 있지 않습니다. SQL Server가 없으면 페이지가 완료 될 때마다 트리를 다시 트래버스해야하고 다음 페이지를 찾고 싶다는 점을 고려하면 상당히 큰 이점입니다. 또한'SELECT TOP (200)'질의 또는 다른 비 인덱스 필드를 스캔해야하는 질의에 대해서 생각해보십시오. –
@RebornXu이 예제가 꽤 많이 요약 된 것 같습니다. 물론 유익한 많은 쿼리가 있지만 인덱스 범위를 스캔하는 것만으로 끝납니다. 고유하지 않은 키와의 동일성은 하나이며, 병합 조인 연산자로 정렬해야하기 때문에 병합 조인이있는 두 개의 큰 테이블을 조인하는 것이 더 깁니다. –