MySQL 인덱스의 기본 구현 원칙에 대한 자세한 설명

coldplay.xixi
풀어 주다: 2021-04-27 09:31:53
앞으로
2360명이 탐색했습니다.

MySQL 인덱스의 기본 구현 원칙에 대한 자세한 설명

MySQL 인덱스의 기본 구현 원리

    • 1. 머리말
    • 2. 인덱스 유형
      • 1, 해시 인덱스
      • 2, BTree 인덱스 및 B+Tree 인덱스
        • ( 1) BTree 인덱스
        • (2) B+Tree 인덱스
        • (3) B+Tree 비교 BTree 장점:
      • 3. 전체 텍스트 인덱스

관련 무료 학습 권장 사항: mysql 비디오 튜토리얼

1. 소개

MySQL은 많은 스토리지 엔진을 지원하며, 다양한 스토리지 엔진은 인덱스에 대해 서로 다른 지원을 제공합니다. 따라서 MySQL 데이터베이스는 BTree 인덱스 및 B+Tree 인덱스와 같은 여러 인덱스 유형을 지원합니다. , 해시 인덱스, 전체 텍스트 인덱스 등

2. 인덱스 종류

1. 해시 인덱스

해시 인덱스는 메모리(메모리) 저장 엔진에서만 지원하며, 해시 인덱스는 인덱스 열의 값을 참조하여 해당 값의 해시 코드를 계산합니다. 값이 있는 행 데이터의 물리적 위치는 해시 알고리즘을 사용하므로 매우 빠릅니다. 그러나 값은 하나의 hashCode에만 대응할 수 있으므로 해시 분산됩니다. 해시 인덱스는 범위 검색 및 정렬 기능을 지원하지 않습니다.

2. BTree 인덱스와 B+Tree 인덱스

(1) BTree 인덱스

BTree 인덱스는 트리의 깊이가 2d(d> 1)인 경우 균형 검색입니다. 높이가 h이면 BTree는 다음 조건을 충족해야 합니다.
① 각 리프 노드의 높이는 h와 동일해야 합니다.
② 각 리프 노드는 n-1 키와 n 포인터로 구성됩니다. 여기서 d ③리프 노드 포인터는 모두 null입니다.
④리프가 아닌 노드의 키는 모두 [key, data] 튜플입니다. , 여기서 key는 인덱스를 나타내며, data는 키 값이 있는 행의 데이터입니다.

(2) B+Tree 인덱스

B+Tree는 BTree의 변형입니다. d가 트리의 차수이고 h가 숫자의 높이인 경우 B+Tree와 BTree의 주요 차이점은 다음과 같습니다.
① B+Tree Leaf 노드의 숫자가 아닌 노드는 데이터를 저장하지 않고 키 값만 저장합니다.
②B+Tree의 리프 노드에는 포인터가 없으며 모든 키 값은 리프 노드에 표시되며 키 값은 저장됩니다. 키는 데이터 데이터의 물리적 주소에 해당합니다.
③B+ 트리의 각 리프가 아닌 노드는 n개의 키 값과 n개의 포인터로 구성됩니다.

(3) BTree에 비해 B+Tree의 장점:

① 디스크 읽기 및 쓰기 비용이 저렴합니다.
② 쿼리 속도가 더 안정적입니다.

3. 전체 텍스트 인덱스

FullText(전체 텍스트) 인덱스는 MyISAM 및 InnoDB에만 사용할 수 있습니다. 더 큰 데이터의 경우 전체 텍스트 인덱스를 생성하는 데 시간과 공간이 많이 소요됩니다.
FullText 인덱스를 생성할 때 텍스트에 대한 단어 목록이 생성되며, 인덱스는 인덱싱 중에 이 단어 목록을 기반으로 합니다.

관련 무료 학습 권장 사항: mysql 데이터베이스(동영상)

위 내용은 MySQL 인덱스의 기본 구현 원칙에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!