색인:
검색 속도를 높이는 기술입니다.
INDEX는 인덱스입니다. TABLE의 열을 인덱싱하여 검색하는 것은 TABLE의 레고 전체 스캔이 아니라 인덱싱됩니다.
더 빠른 검색을 위해 INDEX 파일을 검색합니다.
책의 목차라고 생각하시면 됩니다.
이 INDEX는 TREE 구조로 인덱싱합니다.
RDBMS에서 사용되는 INDEX는 Balance Search Tree를 사용합니다.
실제로는 B-Tree에서 파생된 B+Tree를 사용합니다.
Oracle 및 MySQL에서 여러 유형의 TREE를 선택하여 사용할 수 있습니다.
B트리 A는 이진 노드를 확장하여 노드가 가질 수 있는 최대 자식 노드 수가 2보다 큰 트리 구조입니다.
로그 시간에 정렬하고 삽입 및 삭제를 수행할 수 있습니다.
검색 절차는 이진 검색 트리와 똑같은 방식으로 수행됩니다. 루트에서 시작하여 검색 대상의 값을 분류하고 위에서 아래로 비교합니다.
자식 포인터를 찾는 과정을 계속하십시오.
B_TREE 인덱스는 컬럼 값을 변경하지 않고 원래 값을 사용하여 인덱싱하는 알고리즘입니다.
장점
– 인덱스 테이블을 스캔할 때 데이터가 인덱스 테이블에 정렬되어 저장되기 때문에 조건(where)과 일치한다.
데이터를 빠르게 찾을 수 있습니다. 이것이 인덱스를 사용하는 주된 이유입니다.
– INDEX 사용 시 이미 정렬되어 있으므로 정렬 과정을 생략할 수 있습니다.
Order By는 매우 비용이 많이 드는 작업입니다. 정렬과 동시에 정렬은 주로 메모리에서 수행됩니다.
이는 작업이 필요한 메모리보다 큰 경우에도 발생합니다. 색인을 사용하면 이미 정렬되어 있으므로 가져오기만 하면 됩니다.
– 최대값과 최소값도 얻고 싶습니다.
불리
– 데이터셋의 데이터 값이 변경되더라도 정렬된 상태를 유지해야 하므로 영향을 받습니다.
삽입, 업데이트, 삭제 시 변경된 데이터를 재정렬해야 합니다.
값이 변경되면 INDEX 테이블의 값을 재정렬하고 원래 테이블도 정렬해야 합니다.
만들 때 ???
– 데이터 분포도가 가장 높고 조건절에서 자주 호출되는 컬럼에 인덱스를 생성하는 것이 좋다.
특정 칼럼을 기준으로 인덱스가 생성되고 기본 칼럼으로 정렬된 INDEX 테이블이 생성된다.
1. 조건절에서 흔히 볼 수 있는 열
2. 항상 열을 =로 비교하십시오.
3. 최소한의 중복 데이터가 포함된 열
4. 자주 사용하는 컬럼을 순서대로
5. 조인 조건으로 일반적으로 사용되는 열
색인을 사용하는 것이 항상 더 좋습니까?
인덱스를 관리하려면 데이터 베이스 추가 수납공간은 기존의 10% 정도라고 합니다.
인덱스 디자인 x
많은 양의 데이터를 자주 입력할 때, 데이터 중복성이 높을 때, 데이터를 자주 사용하지 않을 때
색인 유형
primary : 고유하고 중복되지 않는 키
normal : 중복을 허용하는 인덱스
고유: 중복을 허용하지 않는 고유 키
외래: 다른 테이블과 관계를 설정하는 키
전문: 자연어로 검색

클러스터 인덱스는 처음부터 정렬됩니다. 영어 사전 나는 같은 느낌
보조 인덱스(비클러스터형)~이다 책 뒤를 봐 같은 개념입니다.
클러스터 인덱스란 무엇입니까? 특정 기준에 따라 특정 나열된 데이터를 정렬합니다.
>> 인덱스 생성 시 모든 데이터 페이지가 재정렬됩니다.
>> 인덱스를 생성하면 시스템 부하가 발생할 수 있습니다.
>> 테이블에서 차례로 만들 수 있습니다 (기본 키)
클러스터 인덱스는 별도로 저장되는 정보에 필요한 공간이 적습니다. 테이블 공간 자체를 사용하십시오.
검색은 빠르지만 입력/변경/삭제는 느립니다.
인덱싱할 때 마스터 페이지만들어진다
모든 데이터 중 첫 번째 데이터만 마스터 페이지에 표시됩니다.
데이터 페이지는 자동으로 정렬됩니다.

보조 인덱스
개념적으로 후보 키에만 할당할 수 있는 인덱스입니다. 고유 식별 속성의 최소 세트
보조 인덱스도 루트 페이지로 생성되지만 데이터 페이지에 직접 연결되지 않습니다.
보조 인덱스를 생성할 때 별도의 페이지 에 색인을 구성합니다(제거)
>> 정렬하지 마십시오.
>> 리프 페이지에는 데이터가 아닌 데이터의 주소 값이 포함됩니다.
>> 여러 개를 만들 수 있습니다.
각 데이터 조각에 대해 고유한 값 목록을 만들 수 있는 인덱스입니다.
데이터 페이지는 수정되지 않으며 하나 이상 생성할 수 있습니다.

삽입 페이지에서는 페이지의 공백에 데이터를 삽입하고 페이지가 분할되도록 리프 페이지에 매핑하기만 하면 됩니다.
삽입에는 장점이 있지만 검색에는 단점이 있습니다.
테이블에 등록된 인덱스 확인
SHOW INDEX FROM '테이블명'

테이블의 열에 기본 키를 설정하면 해당 열에 클러스터형 인덱스가 자동으로 생성됩니다. 그리고 클러스터형 인덱스가 있는 기본 키 열을 기준으로 오름차순(기본값)으로 정렬됩니다.
지수는 높은 카디널리티 열지정하는 것이 좋다
카디널리티는 높음은 데이터 중복이 적다는 것을 의미합니다.
