보기 만 해도 알 수 있 는 MySQL 의 클 러 스 터 인덱스 와 클 러 스 터 인덱스 가 어떻게 자 랐 는 지
2778 단어 MySQL클 러 스 터 인덱스
만약 당신 이 나의 이전의 필 기 를 보 았 다 면,당신 은 MySQL 이 CRUD 를 진행 하 는 것 이 메모리 에서 진행 되 는 것,즉 Buffer Pool 에서 진행 되 는 것 을 알 게 될 것 입 니 다.그리고 메모리 에 MySQL 에 필요 한 데이터 가 없 을 때 MySQL 은 Disk 에서 IO 작업 을 통 해 데 이 터 를 메모리 에 읽 는 것 을 알 게 되 었 습 니 다.읽 는 단 위 는 데이터 페이지 입 니 다.
일반 데이터 페이지 길이 아래 이렇게
맞 아,데이터 페이지 에 진실 한 데이터 가 저장 되 어 있 고 데이터 페이지 는 메모리 에 양 방향 연결 표 로 구성 되 어 있어!아래 그림
B+Tree 설정 에 서 는 홈 키 색인 을 요구 할 때 증가 합 니 다.즉,홈 키 색인 이 증가 하면 오른쪽 데이터 페이지 의 모든 데이터 가 왼쪽 데이터 페이지 의 데이터 보다 커 야 합 니 다.그러나 위의 그림 이 맞지 않 는 것 이 분명 하기 때문에 페이지 분열 을 통 해 아래 와 같이 조정 해 야 한다.
자,지금 생각해 보 세 요.전에 들 어 본 적 이 있 을 겁 니 다.MySQL 의 B+Tree 클 러 스 터 색인 은 잎 노드 만 실제 데 이 터 를 저장 합 니 다.잎 노드 에 저 장 된 것 은 색인 데이터 가 아니 라 잎 노드 간 에 양 방향 링크 를 통 해 연결 되 어 있 습 니 다.
맞아요.그 모든 B+Tree 의 잎 사 귀 노드 는 위의 그림 의 데이터 페이지 이 고 양 방향 링크 를 통 해 연결 되 어 있 습 니 다!
우 리 는 이어서 아래 를 내 려 다 보 았 다.만약 에 위의 그림 이 데이터 페이지 로 연 결 된 양 방향 링크 만 본다 면 이때 우리 가 id=7 의 데이터 줄 을 검색 하면 무슨 일이 일어 날 까요?
분명히 우리 처음부터 스 캔 해 야 돼!
그러면 물 어 볼 수도 있 습 니 다.방금 B+Tree 가 메 인 키 를 요구 하 는 것 이 증가 하 는 것 이 라 고 하지 않 았 습 니까?또한 페이지 분열 메커니즘 은 오른쪽 데이터 페이지 의 모든 데이터 가 왼쪽 데이터 페이지 의 색인 값 보다 크다 는 것 을 보증한다.그럼 2 점 검색 하면 안 돼 요?
답:네,한 데이터 페이지 에서 2 분 동안 찾 을 수 있 지만 데이터 페이지 간 의 조직 관 계 는 링크 입 니 다.그래서 처음부터 옮 겨 다 니 는 것 은 피 할 수 없습니다.
그럼 MySQL 은 어떻게 되 는 거 예요?
다음 그림:MySQL 은 여러 데이터 페이지 에 대해 색인 디 렉 터 리 를 추상 화 했다.
그러면 이 색인 디 렉 터 리 가 있 습 니 다.우 리 는 많은 데이터 페이지 에서 검색 할 때 훨씬 쉬 워 보 입 니 다!바로 2 점 검색 능력 을 갖 게 되 었 습 니 다!
그리고 이 때문에 디 렉 터 리 도 데이터 페이지 에 존재 합 니 다.잎 노드 와 달리 그 안에 지식 은 색인 정 보 를 저장 하고 잎 노드 에 저 장 된 것 은 실제 데이터 입 니까?
색인 페이지 의 탄생 은 B+Tree 의 초기 형태 가 탄생 했다 는 것 을 의미한다!
사용자 가 계속 select 에 따라 buffer pool 의 데이터 페이지 가 점점 많아 지면 서 색인 페이지 의 데이터 도 높 아 질 것 입 니 다.기 존의 색인 크기 가 16KB(데이터 페이지 의 용량)를 초과 할 때 새로운 색인 페이지 를 만들어 서 새로운 색인 정 보 를 저장 해 야 합 니 다.이때 이 B+Tree 는 점점 뚱뚱 해 집 니 다.
그러면 너 도 알다 시 피 B+Tree 는 B 나무의 변종 이 고 B 나 무 는 2-3 나무,2-3-4 수....................................................................
다음 그림 처럼:
이상 은 바로 한눈 에 알 수 있 는 MySQL 의 클 러 스 터 색인 과 클 러 스 터 색인 이 어떻게 자 랐 는 지 에 대한 상세 한 내용 입 니 다.MySQL 클 러 스 터 색인 에 관 한 자 료 는 다른 관련 글 에 주목 하 시기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.