[SQL] - 인덱스의 내부 작동
1. 균형 트리의 개념
노드 : 데이터가 저장되는 공간
루트 노드 : 노드의 가장 상위 노드
리프 노드 : 제일 마지막에 존재하는 노드
중간 노드 : 루트, 리프 중간에 끼인 노드
페이지 : MySQL에서 부르는 노드
- 균형 트리는 무조건 루트 페이지부터 검색한다.
2. 균형 트리의 페이지 분할
루트 노드에 자리가 없으면 루트 노드를 또 분할한다.
페이지 분할이 일어나면 MySQL에 부담이 커진다.
3. 클러스터형 인덱스 구성하기
USE market_db;
CREATE TABLE cluster
(mem_id CHAR(8),
mem_name VARCHAR(10)
);
INSERT INTO cluster VALUES('TWC', '트와이스');
INSERT INTO cluster VALUES('BLK', '블랙핑크');
INSERT INTO cluster VALUES('WMN', '여자친구');
INSERT INTO cluster VALUES('OMY', '오마이걸');
INSERT INTO cluster VALUES('GRL', '소녀시대');
INSERT INTO cluster VALUES('ITZ', '잇지');
INSERT INTO cluster VALUES('RED', '레드벨벳');
INSERT INTO cluster VALUES('APN', '에이핑크');
INSERT INTO cluster VALUES('SPC', '우주소녀');
INSERT INTO cluster VALUES('MMU', '마마무');
입력 순서와 동일한 순서로 보인다
- 클러스터형 인덱스 구성
ALTER TABLE cluster
ADD CONSTRAINT
PRIMARY KEY(mem_id);
오름차순 정렬
4. 보조 인덱스 구성하기
USE market_db;
CREATE TABLE second
(mem_id CHAR(8),
mem_name VARCHAR(10)
);
INSERT INTO second VALUES('TWC', '트와이스');
INSERT INTO second VALUES('BLK', '블랙핑크');
INSERT INTO second VALUES('WMN', '여자친구');
INSERT INTO second VALUES('OMY', '오마이걸');
INSERT INTO second VALUES('GRL', '소녀시대');
INSERT INTO second VALUES('ITZ', '잇지');
INSERT INTO second VALUES('RED', '레드벨벳');
INSERT INTO second VALUES('APN', '에이핑크');
INSERT INTO second VALUES('SPC', '우주소녀');
INSERT INTO second VALUES('MMU', '마마무');
SELECT * FROM SECOND;ALTER TABLE second
ADD CONSTRAINT
unique(mem_id);
SELECT * FROM second;
내부적으로는 보조 인덱스를 구성하면 인덱스가 별도의 공간에 만들어진다.
5. 인덱스에서 데이터 검색하기
- 클러스터형 또는 보조 인덱스를 이용해서 검색.
- 속도는 인덱스를 사용하지 않았을 때보다 빠르다.
Author And Source
이 문제에 관하여([SQL] - 인덱스의 내부 작동), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@y7y1h13/SQL-인덱스의-내부-작동저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)