I. 서론 색인
1.1 인덱스 액션
, 목적은 쿼리를 최적화하기 위해 책 디렉토리에서 비슷한 역할을 제공
1.2 인덱스 분류 알고리즘
넓은 카테고리 :
B 트리 인덱스 해시 인덱스 R 트리 전체 텍스트 GIS 기반의지도 인덱스 #의 ------------------------------- 다른 기반으로 #B 나무 카테고리 검색 알고리즘 : B-트리 두 가지 유형의 쿼리 용어의 범위에서 더 나은 성능 (> <> = <=)를 제공 + 트리 B B * 트리
1.3 인덱스 기능에 대한 분류
1.3.1 보조 인덱스
1) 보조 인덱스는 (S)는 어떻게 B-트리 구조를 구축?
- (1) B는 트리 구조가 생성되는 색인 테이블 열 값 (키 인덱스)을 기반으로
- (2) 제 자동 정렬이 열의 모든 값을 추출
- (3) 지수 트리의 리프 노드에 분배 균일 순서화 행의 값 (16K)
- (4) 다음 데이터 페이지의 후단에 대응하는 포인터를 획득하기 위해 상기 인덱스 키 생성
- (5) 상기 분기 노드 및 루트 노드를 생성하는 적절한 인덱스 트리 높이를 생성, 데이터 길이 및 인덱스 키의 순서에 따라
2) 보조 인덱스 세분
- 1) 일반 단일 보조 인덱스 ( 일반 인덱스 )
- 2) 인덱스 커버 (관절 인덱스), 인덱스 조건으로 하나 이상의 열을 이론적 트리 인덱스를 생성하는 양호한 디자인 백 테이블 쿼리의 양을 감소시킬 수있다
- 3) 고유 인덱스 : 색인 열 값이 고유.
1.3.2, 클러스터 된 인덱스
1) 전제
- (1) 테이블에 제공되는 기본 키, 기본 키 컬럼 자동 집계로 인덱싱된다.
- 기본 키가없는 경우 (2), 선택 고유 키 클러스터 된 인덱스로합니다.
- (3) 테이블의 구성은, 테이블의 열, 일반적으로 독립 인 경우에만 클러스터 인덱스 (ID) 의미 있어야
2) 클러스터 된 인덱스 (C) 방법 B-트리 구조를 구축?
- (1) 구성 테이블의 기본 키 컬럼 (ID)를 설정
- 데이터를 입력 할 때 (2), 미래의 주문 ID 열에서 디스크에 저장됩니다. (우리는 그것을 호출 클러스터 인덱스 구성 테이블 )
- 리프 노드를 생성 한 데이터 (3)에 정렬된다 전체 행으로 이해 될 수있는 디스크 데이터 페이지하면 잎 노드
1.3.3 인덱스 높은 충격 요인
1) 정도의 데이터 , 용액 : 서브 테이블은 서브 - 라이브러리는, 분산
프리픽스 인덱스 2) 열 인덱스 값은, 용액 너무 길어
3) 데이터 유형 :
가변 길이 문자열의 길이, 문자의 사용, 솔루션 : 가변 길이 문자열 VARCHAR의 사용
열거를 사용하여 열거 유형 ( '산', '허베이', '흑룡강', '길림', '랴오닝', '산시'...)
1.3.4, B 트리 검색 알고리즘
둘째, 기본 관리 지표
2.1 인덱스를 참조
mysql> desc city; +-------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------+------+-----+---------+----------------+ | ID | int(11) | NO | PRI | NULL | auto_increment | | Name | char(35) | NO | | | | | CountryCode | char(3) | NO | MUL | | | | District | char(20) | NO | | | | | Population | int(11) | NO | | 0 | | +-------------+----------+------+-----+---------+----------------+ Field :列名字 key :有没有索引,索引类型 PRI: 主键索引 UNI: 唯一索引 MUL: 辅助索引(单列,联和,前缀) mysql> show index from city; +-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +-------+------------+-------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | city | 0 | PRIMARY | 1 | ID | A | 4188 | NULL | NULL | | BTREE | | | | city | 1 | CountryCode | 1 | CountryCode | A | 4188 | NULL | NULL | | BTREE | | | + ------- + ------------ + ------------- + -------------- + ------------- + ----------- + ------------- + --------- - + -------- + ------ + ------------ + --------- + --------- ------ +
2.2, 인덱스 생성은 삭제, 수정
1) 인덱스를 작성
테이블 도시 인덱스 idx_name (이름)을 추가 변경; #方法一 도시에 인덱스 idx_name1를 생성 (이름); #方法二 도시에서 공연 지수;
2) 삭제 색인
표시 드롭 지수 idx_name1을 변경 #가 인덱스 이름을 삭제
3) 피복 률 ( 조인트 인덱스)
테이블 도시 키 idx_co_po (COUNTRYCODE 추가 alter입니다 , 인구) 여러 필드에 # 지수는 테이블 도시 인덱스 idx_co_po (COUNTRYCODE 추가 변경 , 인구) 여러 필드 #을에 인덱스를
4) 프리픽스 인덱스
테이블 도시 인덱스 idx_di을 추가 변경 (지구 (5)); # 5 자 인덱스 앞
5) 고유 인덱스
고유 인덱스 idx_uni1 (이름)을 추가 테이블 도시를 변경하는 행위 ERROR 1062 (23000) :唯一键冲突키 'idx_uni1'#에 대한 중복 항목을 '산호세'