MySQL의의 고성능 독서 노트

1. B-tree 인덱스 (여러 인덱스를 만들 때 인덱스 컬럼 순서는 첫 번째 컬럼의 가장 중요한 지표이다, 매우 중요하다)

전체 매치 (모든 인덱스 문자열 일치), 좌측의 프리픽스 매칭 (첫 번째 행의 엔트리 인덱스를 사용하여), 프리픽스 치열 (컬럼은 J에서 조회로 인덱스의 선두 부분과 일치하는. B 트리 인덱스 값 사람의 이름의 시작), 매칭 값 범위 (XX하는 XX에서 인덱스 열)의 범위와 칼럼 매치 정확히 열 범위를 일치

. 가장 왼쪽 인덱스 컬럼에서 찾고 시작해야합니다, 또는 인덱스의 두 번째와 세 번째 열을 사용하여 첫 번째 행과 열 인덱스를 사용하지 않는 경우, 작동하지 않습니다 같은 인덱스를 사용할 수 없습니다 쿼리가 인덱스가있는 경우 : 몇 가지 제한 사항이 B 컬럼의 범위보다는 정확한 일치를 찾기는 인덱스의 사용의 오른쪽에 열을 인덱싱 할 수 없습니다

2. 해시 인덱스 해시 인덱스

가. 인덱스 자체를 단순히 저장된 해시 값에 대응하므로 속도가 매우 빠른 해시 룩업하므로 인덱스의 구조는 매우 조밀

그래서 해시 인덱스 라인이 필드 값이 저장되지 해시 값 만 포인터를 포함하지만, 직접 포인터 검색에있어서의 값이지만 빠르게 행에 메모리 액세스의 속도를 중시하지 않고, :. B 규제 더 심각한 문제는, 번호순에 저장된 해시 인덱스 데이터에 의하면,이 정렬에 사용되지 않을 수 없다 해쉬 인덱스 컬럼 인덱스 부분 매치 검색이 지원되지 않고, 예컨대 제 2 및 제 3 A에서 확립 해시 인덱스, B 만 것처럼 와 열, 당신은 인덱스를 사용할 수 없습니다 해시 인덱스는 동등 비교 문의 지원, 어떤 범위 쿼리를 지원하지 않습니다 많은 해시 충돌을, 당신은 각 라인 찾아 줄을 삭제하기 위해 연결리스트의 가치 해시에 해당 통과하는 선을 삭제해야 , 유지 보수 작업의 비용은 어떻게

다. 이노 엔진이 특징 엔진이 일부 인덱스 값이 너무 자주 사용된다는 것을 알 수있다 "적응 해시 인덱스"를 가지고, 그 다음 B 트리 인덱스를 기반으로 메모리에 해시 인덱스를 생성합니다. 이것은 사용자가 제어하거나 구성 할 수없는, 완전 자동화 된 내부 동작입니다 만, 종료이 필요하다

3. 장점 색인

가. 크게 서버를 검색하는 데이터의 양을 줄일

나. 인덱스 서버 종류와 임시 테이블을 방지하는 데 도움이 될 수 있습니다

다. 인덱스가 임의 I 될 수 있습니다 / O / O를 순차적 I됩니다

4. 일부 인덱싱 전략

. 접두사 지수는 같은 도시 이름의 처음 7 자 색인 같은 데이터의 컬럼의 인덱스 처음 몇 문자를 (데이터가 매우 긴 경우 인덱스 열을 고려할 수 있습니다) : 키를 추가 sakila.city_demo 표를 ALTER (도시 (7)); 단점은 스캔 범위를 할 수 없으며, GROUP BY에 의해 접두사 인덱스 ORDER를 사용하지 않는 것입니다

당신이 인덱스에 하나 이상의 열을 원하는 경우 나., 인덱스 컬럼 순서는 매우 중요합니다. 경험적 대부분 (선택적 계산보기 P155)의 선두에있는 열의 높은 선택성 지수

다. 이노의 기본 키 인덱스가 기본 키 열, 트랜잭션 ID, 나머지 컬럼의 다른 롤백 포인터를 보유하고, 각각의 클러스터, 우리는 InnoDB의 기본 키 인덱스 자체가 말할 수 있습니다 "테이블." 단지 기본 키 및 보조 지표 값 열이므로 처음 포함 이노 지수 차 (즉, 기본 키가 아닌 인덱스) 비는 클러스터가 기본 키 값에 따라 다음 기본 키 값을 찾아되었고 목표 행 내부 기본 키 인덱스 룩업 데이터하는 B-트리 두 찾을

D.의 MyISAM 기본 키 인덱스 및 2 인덱스 비 집단이다의 MyISAM 자체가 행 번호와 함께 제공하고, 기본 키 인덱스는 보조 지시선 참조 더한 기본 키 열 / 2 개의 행 색인 열 값에 저장된 값

 

추천

출처www.cnblogs.com/LittleMike/p/11779473.html