MySQL의 인덱스 최적화 (소트)

MySQL의 최적화

: 일반 면접 MySQL은 어떻게 대답 아이디어를 최적화
1. 먼저 시스템이 시스템의 느린 SQL보기 위해 하루에 적어도 실행할 수 있도록
2. 슬로우 쿼리 로그 등을 5 초 이상으로 설정 임계 값, 느린 SQL, 그리고 그것을 잡을 꺼내
3.explain + 느린 SQL을 분석하는
4.show 프로파일 조회 SQL 구현 세부 사항 내부와 MySQL 서버 라이프 사이클 곳
파라미터 튜닝 5.SQL 데이터베이스 서버

먼저, 최적화 원리 : 작은 테이블 중심 큰 테이블, 즉 작은 데이터 세트는 대용량 데이터 세트를 구동한다.

B가 존재하는 것보다, 데이터 세트의 데이터를 표 A에 나타난보다 작게 설정되면

SELECT * FROM A WHERE id IN (SELECT id FROM B);
等价于
SELECT * FROM A WHERE EXISTS (SELECT  1 FROM B WHERE B.id=A.id)

(A)에 존재하는 경우보다 표 A 표 B의 데이터 세트는 이하 데이터 세트 이상이어야

EXISTS
SELECT ... FROM table WHERE EXISTS(subquery)

데이터 검증 결과 (진실 / 거짓)에 기초하여 기본 쿼리 결과가 보존되어 있는지 여부를 확인하기 위해 어떤 조건을 검증 부질으로 메인 데이터 질의 :이 구문으로 이해 될 수있다.
그림 삽입 설명 여기

두, 주문 최적화

1.ORDER BY 절은 인덱스 정렬 모드를 사용하여 정렬 FileSort 피할 사용하려고
테이블 TBLA 구축 (1), 연령 및 출생 필드에 복합 인덱스를 생성
그림 삽입 설명 여기
순서에 따라 (2) 분석 인덱스 사용

EXPLAIN SELECT * FROM tblA WHERE age>20 ORDER BY age;

그림 삽입 설명 여기

EXPLAIN SELECT * FROM tblA WHERE age>20 ORDER BY age,birth;

그림 삽입 설명 여기

EXPLAIN SELECT * FROM tblA WHERE age>20 ORDER BY birth;

그림 삽입 설명 여기
생산 filesort

EXPLAIN SELECT * FROM tblA WHERE age>20 ORDER BY birth,age;

그림 삽입 설명 여기
filesort 생산
그림 삽입 설명 여기
MySQL은 인덱스 자체 방식으로 적은 FileSort 효율을 스캔 주문의 MySQL의 완료를 의미 FileSort 및 색인, 높은 효율 지수, 정렬의 두 가지 방법을 지원합니다.

이가지 경우를 만족하여 순서에 의해 정렬 인덱스를 사용하는 경우 : 가장 왼쪽 인덱스 2. 진술의 최전선에 의해 1.order를 Where 가장 왼쪽의 선두 인덱스를 충족하기 위해 결합 절 조건에 의해 절 순서.
가능한 한 인덱스 컬럼에 정렬 작업을 완료 설립 가장 왼쪽 접두사 인덱스의 원리를 따르십시오.
인덱스 열에서 filesort 두 알고리즘, 단방향 및 양방향이 있습니다하지 않으면 정렬 순서 :
그림 삽입 설명 여기
: 단일 정렬과 같은 몇 가지 문제가 될 것입니다
그림 삽입 설명 여기
최적화 전략 :
그림 삽입 설명 여기
왜?
그림 삽입 설명 여기
마지막으로, 요약 :
그림 삽입 설명 여기

세 그룹으로의 최적화

그림 삽입 설명 여기

게시 23 개 원래 기사 · 원 찬양 67 ·은 20000 +를 볼

추천

출처blog.csdn.net/weixin_43395911/article/details/104370197