LiteDB 소스 분석 시리즈 (4) 테이블의 이론적 근거를 점프

  인덱스 테이블 내부 LitDB 데이터 구조를 달성하기 위해 점프, 내가 오픈 소스 프로젝트는 레디 스를 포함 점프 테이블을 사용하는 것을 알고, 당신은 레디 스 점프 테이블의 기능을 달성하기 위해 인터넷을 검색 할 수 있습니다. 이 장에서 나는 LiteDB 테이블에서 점프를 예를 들어 설명하고 결합 할 것이다.

 표에게 다른 데이터 구조와 비교 1. 점프

  우리는 종종 B - 트리, 레드 - 블랙 트리, AVL 나무, 스플레이 트리, Treep를들을 수 있지만, 당신이 좋은 많은 세부 사항을 고려할 수 있습니다, 우리가 달성하기 위해 편집기 자체를 열 수 있도록 할 수 있습니다. 사용 점프 테이블은 무작위 데이터 구조, 효율성 및 AVL 나무와 레드 - 블랙 트리 파이며, 매우 간단하지만, 그 원칙은 한 작업이 목록을 읽을 수있는, 쉽게 점프 달성 할 수있는, 복잡하지 않습니다 테이블.

 검색 점프 테이블 1.1

  

  점프 테이블은 다음과 같은 속성이 있습니다 :

  (1) 구조가 여러 층으로 구성된

  (2) 각 층은 정렬 된 목록은

  리스트의 모든 요소를 ​​포함하는 (3) 최저 레벨 (레벨 1)

  요소가 목록에서 레벨 I 목록에 표시되는 경우 (4) 또한 레벨 난에 표시됩니다 아래.

  (5) 각 노드는 두 개의 포인터 동일리스트에서 다음 엘리먼트에 대한 포인터는 다음의 요소들 중 하나에 대한 포인터를 포함한다.

  예 : 요소 (117) 찾기

  다시 찾고 (21)의 (1) 비교, 21 개 이상의 대형,

  (2) 처음부터리스트의 최대 값보다 작은, 37보다 크고 37 비교가 다음 층을 찾는 37

  (3) 처음부터리스트의 최대 값보다 작은, 71보다 크고 71 비교가 다음 층을 찾는 71

  뒤에서 찾고 85 85 더 큰 (4) 비교,

(5) 비교 (117)는 노드를 발견하기 위해 117와 동일하다.

 

 삽입 점프 테이블 1.2

  먼저, 소자의 층들의 수는 K에 의해 점유 될 판별 레벨 1 (손실 완전히 랜덤 동전로서) ... 각각의 레이어 레벨 K 요소들의 목록에 삽입된다.

  예 : 삽입 119, K = 2

 1.3  공간 분석 점프 테이블의 복잡성

  상기 분석에 따르면, 각각의 요소 (2), 점프 테이블 크기 N, 2N의 값을 예상 노드 수의 높이는 것이 바람직하다.

 2.LiteDB 인덱스 점프 테이블 삽입 시각화 애니메이션

  위의 그래픽에 따르면, 우리는 대략 테이블 쿼리가 점프를 참조하고 여기에 내가 LiteDB는, 레코드를 삽입 여전히 "고객이라고 다음 애니메이션 표를 삽입하는 방법을 보여주기 위해 시각적 인 방법을 사용하여 이해하기 매우 쉽게 삽입 할 수 있습니다 "테이블, 필드 {"ID ","나이 ","이름 "}, 지금은 임의의 기록 (10)가 인터페이스에 삽입되면 다음 문서 (11 개) 기록, 필드"나이 "지수의 변화는 분명히 인덱스에 삽입 트랙으로 볼 때 볼 수있는 다음과 같은 시각화 도구 :

 3.LiteDB 인덱스 점프 테이블 룩업 시각화 애니메이션

  위의 데이터에서, 나는 데이터 시대 (9)을 발견하고, 인덱스 쿼리 (확대하려면 사진을 클릭 점프 테이블의 본질이다 최초의 후 첫 뒷면 왼쪽에서 오른쪽의 순서이다 단계에서 지금 우리는 가까운 모습을 볼 수 있습니다 ) :

 4. 결론

  LiteDB의 해석은 아마 여기 중지, 나는 일반적인 프로세스는, 당신은 단지 시각화하는 방법을 생각할 수, 각 모듈의 기능을 볼 컨트롤 클래스 다이어그램에 표시된 클래스 다이어그램 대이 소스를 사용하여 추가하고 인덱스를 검색하는 것입니다 생각합니다. LiteDB 최신 버전은 잘 사용하는 프로젝트 뒤에 사용 된 경우, 또한 사용에 대한 몇 가지 정보를 업데이트하기 위해 다시 올 수있는 기능을 추가했다.

추천

출처www.cnblogs.com/xiaozhangStudent/p/11052105.html