우리 모두 알고 있듯이 innodb는 보조 인덱스에만 기본 키 값을 저장합니다. 즉, 행 레코드를 얻으려면 클러스터형 인덱스 B+ 트리를 다시 탐색해야 합니다.
추가 조회 작업을 줄이기 위해 행 포인터를 보조 인덱스에 직접 저장하면 어떨까요?
"행 포인터"가 없습니다. PRMARY KEY의 열에는 데이터의 BTree에서 행을 찾는 기능이 있습니다.
PRMARY KEY
물론 PK를 통한 조회는 "행 포인터"보다 느릴 수 있습니다. 그러나 업데이트, 삭제, 블록 분할 등은 모두 자동으로 처리됩니다. (Bill의 의견을 참조하세요.) 이렇게 하면 코드가 더 단순해집니다. 그리고 어떤 경우에는 더 빠릅니다.
더 빠르고 간단한 예: 주어진
이 예에서는 인덱싱된 BTree에 완전한 답이 있습니다. 데이터 BTree에 액세스할 필요가 없습니다. 따라서 이 색인을 이 SELECT의 "표지"라고 합니다.
SELECT
"행 포인터"가 없습니다.
PRMARY KEY
의 열에는 데이터의 BTree에서 행을 찾는 기능이 있습니다.물론 PK를 통한 조회는 "행 포인터"보다 느릴 수 있습니다. 그러나 업데이트, 삭제, 블록 분할 등은 모두 자동으로 처리됩니다. (Bill의 의견을 참조하세요.) 이렇게 하면 코드가 더 단순해집니다. 그리고 어떤 경우에는 더 빠릅니다.
더 빠르고 간단한 예: 주어진
으아악이 예에서는 인덱싱된 BTree에 완전한 답이 있습니다. 데이터 BTree에 액세스할 필요가 없습니다. 따라서 이 색인을 이
SELECT
의 "표지"라고 합니다.