innodb가 보조/비클러스터형 인덱스에 행 포인터를 저장하지 않는 이유는 무엇입니까?
P粉038161873
P粉038161873 2023-09-11 17:28:42
0
1
615

우리 모두 알고 있듯이 innodb는 보조 인덱스에만 기본 키 값을 저장합니다. 즉, 행 레코드를 얻으려면 클러스터형 인덱스 B+ 트리를 다시 탐색해야 합니다.

추가 조회 작업을 줄이기 위해 행 포인터를 보조 인덱스에 직접 저장하면 어떨까요?

P粉038161873
P粉038161873

모든 응답(1)
P粉469090753

"행 포인터"가 없습니다. PRMARY KEY의 열에는 데이터의 BTree에서 행을 찾는 기능이 있습니다.

물론 PK를 통한 조회는 "행 포인터"보다 느릴 수 있습니다. 그러나 업데이트, 삭제, 블록 분할 등은 모두 자동으로 처리됩니다. (Bill의 의견을 참조하세요.) 이렇게 하면 코드가 더 단순해집니다. 그리고 어떤 경우에는 더 빠릅니다.

더 빠르고 간단한 예: 주어진

으아악

이 예에서는 인덱싱된 BTree에 완전한 답이 있습니다. 데이터 BTree에 액세스할 필요가 없습니다. 따라서 이 색인을 이 SELECT의 "표지"라고 합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿