데이터베이스 인덱스에 디스크 구조에서

디스크 구조

시계 방향으로, 많은로 구성된 디스크 section, 번호 0-N. 안팎 및 복수의 분 track개이고 0-N, sectiontrack여기서,는 교차가 호출 blockA는되도록 block형성 될 수 sectiontrack배치 될 수있다. 각각의 block크기는 동일합니다.

판독 데이터는 운영 체제에 따른 block장치에 대한.

block저장된 구성 데이터는 일반적으로 1 차원 배열 구조로 볼 수있다 (A는 가정 block이다 size같은 512byte)

Disk머리는 개폐식의 위치를 ​​회전 할 수 있으며,block

하려면 디스크의 데이터가 응용 프로그램에서 사용할 수 있습니다해야 첫번째 copy랜덤 액세스 메모리에 데이터를 RAM하는 시간이 많이 걸리는 작업입니다.

데이터베이스 데이터 디스크를 저장하는 방법

지금 존재한다고 가정 Employee도시 된 바와 같이, 필드 중 일부는, 상기 데이터 라인이 너무 크기가 테이블128byte

100 개 라인의 총 데이터 같은 것으로 가정

그래서 각각 block네 줄로에게 이러한 데이터,이 저장할 수있는 100行데이터의 요구를 25个block찾을 필요까지 기록을 조회 할 수있는 방법으로 지금 가정 25个block.

그 지수는 이유를 찾는 횟수를 줄일 수있다?

인덱스는 무엇인가

우리는 두 개의 필드하는가, 간단한 인덱스를 구축 eid전시 employee의이 id필드가, pointer데이터 저장에, 점 disk위치. empolyee각 행은 index기록에있다

물론, 우리는 또한 인덱스 테이블을 저장하는 방법을 고려해야합니다. 인덱스가에 저장되어있는 경우 disk다음 인덱스가 얼마나 많은 차지할 필요에 block합니까? eid크기 10bytes, pointer크기 6bytes, 그래서 행 인덱스가 16个bytes크기입니다. 100条인덱스가 점유해야합니다 100 * 16 / 512, 즉,4个block

본 경우에, 우리가 찾을 employee데이터 테이블을, 당신은 단지까지 필요한 4두 번 인덱스 테이블 조회 및 employee테이블 읽기, 많이 개선 된 상황에 비해 더 효율 지수는 없다

다단계 인덱스

이제 경우 employee테이블의 행의 수가 증가 1000行하고 마찬가지로, 데이터 테이블의 요구 250个block, 인덱스 테이블이 필요 40个block, 지금이 걸릴 수 기록 조회 41次block(읽기 및 사본 IO)

색인에 따르면 조회 이론의 수를 줄일 수 있습니다, 우리가 지금 인덱스 위의 인덱스를 다시 설정, 즉, 보조 색인을 구축 할 수 있습니다, 보조 인덱스가 저장하는 인덱스를所在的block 인덱스가 현재 점유 40个blocK, 그래서 보조 인덱스 테이블 거기에 40기록, 각 레코드의 크기 지수 16byte, 그래서 점유 보조 지수 block로는 40*16/512,이다 2个block. 자, 이제 인덱스 레벨이 보조 인덱스에 따라 다시 보면 block, 다음 지수에 따라 직접 대상으로 employee특정 데이터 조각 테이블 block총 욕구까지, 2+1+1=4시간 (찾을 수 IO많은 개선 이전의 효율에 비해).

데이터 테이블에 기록 된 데이터의 증가로, 당신은 IO의 수를 줄이기 위해 셋, 넷 .... 인덱스를 만들 수 있습니다

멀티 채널 (N-방법) 검색 트리

이진 검색 트리

각 노드는 하나 개의 값, 대부분 두 아이의 노드, 부모보다 작은 왼쪽 자식 노드, 대형 우측 자식 노드보다 부모가

나무는 대표 某一级상기 탐색 트리의 인덱스 높이 (깊이)를 나타냅니다 最多IO그래서 줄일 수 트리의 높이를 줄일 횟수를 IO의 수를

아이디어는 자식 노드의 최대 개수에 대응하는 다수의 수, 노드 값의 복수를 저장하는 것입니다

N 방향 탐색 트리

각 노드는 최대 저장할 수 있도록 이진 검색 트리 확장, n-1인덱스 값을 각 노드는 수 n, 즉, 자식 노드를 n-way검색 트리

위의입니다 3路검색 트리

우리는 지표로,이 데이터 구조를 사용할 수 있지만 n-way몇 가지 문제가 검색 나무가있다

10,20,30하는 사용 예를 들어,이 세 가지 데이터는 지금 10-way구축 검색 트리를. 대부분의 경우, 이것은 결국 나무를 구축 할 것

이 연결리스트 구조로 변질 해당하는 최악의 시나리오입니다.

B 트리 : 여러 검색 나무가 한계를 증가

B-트리가 사실로 볼 수있다 n-way검색 트리 + 규칙 (규칙 트리를 구축하는 방법)

규칙 :

  • 각 노드는 적어도이 [n/2]자식 노드를
  • 루트는 적어도 수 있습니다 2자식 노드를
  • 계층 구조의 필수의 모든 리프 노드
  • 창조의 과정은 상향식 (bottom-up)입니다

값 :10,20,40,50 . 작성하려면 4-way검색 트리를. 4-way검색 트리, 노드까지 가질 수 있다는 것을 의미 3값.

삽입이 계속 결과, 최종 형태는 다음과 같습니다

각 노드는 복수의 값을 가질 수있는 각각의 키 값과 상기 포인터의 위치를 ​​포함 키는 식별자의 위치에 저장된 상기 식별 데이터의 데이터 값으로 사용

B + 트리

에서 B+나무 대신 각 값 옆의 데이터 저장 위치 만 만 리프 노드에 대한 포인터를 가지고있다. 잎 이외의 노드의 값은, 리프 노드에 자신의 복사본을 가지고

추천

출처www.cnblogs.com/watertreestar/p/11780301.html