인덱스의 분류의 데이터 구조
- 해시시
- B + 트리
두. 해시
-
무질서한 해시 테이블
장애를 신속 해시 테이블이 정확한 쿼리 할 수 있지만, 그러나 범위 쿼리를 지원하지 않습니다 소개 [특징]. 정렬되지 않은 해시 테이블의 인덱스가, 모든 데이터가 매우 느린 쿼리의 결과로 스캔 할 경우,
[] 사용 시나리오 : 해당하는 쿼리를 그와 같은 키 - 값 시나리오, 상기 레디 스; -
정렬 된 해시 테이블
[특징] 소개 : 정적 데이터에 대한 해시 테이블 쿼리를 명령했다. 데이터의 구조를 변경하는 경우, 삭제, 변경 사항을 추가합니다. 그런은 같이 모든 노드가 이동 한 후 새로운 위치가 후 증가 동작을 할 때, 비용이 높다.
[사용] 장면 : 해당하는 쿼리, 쿼리를 다양합니다. 그것은 정적 데이터 저장, 정적 스토리지 엔진으로 사용할 수 있습니다. 예를 들면 : Taobao의 법안.
세. B + 트리
-
B - 트리
노드가 여러 요소를 저장할 수, 나무는 B-트리 완벽 디스크 IO의 효율성을 향상, 전반적인 이진 트리의 높이를 균형보다 높다. -
B + 트리
[특징] 소개 : B + 트리는 B- 트리의 변형이다. 비 - 리프 노드 효율 범위 룩업 증가 된 데이터 레코드들 중 모든 리프 노드가 리프 노드에 저장되는 포인터의 체인, 거기에만 키 정보를 저장한다.
사용 시나리오] : MySQL의 인덱스는 디스크 IO 및 쿼리 인덱스 범위 쿼리의 효율성을 개선하기 위해 B + 트리를 사용합니다.[주] :
B+树中一个节点为页的倍数最为合适,不是页的倍数会造成资源的浪费。