MySql 은 어떻게 색인 을 보고 최적화 합 니까?
우 리 는 아래 문장 을 통 해 현재 색인 사용 상황 을 조회 할 수 있다.
show status like '%Handler_read%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| Handler_read_first | 0 |
| Handler_read_key | 0 |
| Handler_read_last | 0 |
| Handler_read_next | 0 |
| Handler_read_prev | 0 |
| Handler_read_rnd | 0 |
| Handler_read_rnd_next | 0 |
+-----------------------+-------+
색인 이 작업 중이 라면 Handlerread_key 의 값 은 매우 높 습 니 다.이 값 은 한 줄 이 색인 값 으로 읽 히 는 횟수 를 대표 합 니 다.낮은 값 표 이름 으로 색인 을 추가 하여 얻 은 성능 개선 이 높 지 않 기 때문에 색인 은 자주 사용 되 지 않 습 니 다.하면,만약,만약...read_rnd_next 값 이 높다 는 것 은 조회 운행 효율 이 낮 다 는 것 을 의미 합 니 다.색인 보완 을 만들어 야 합 니 다.이 값 은 데이터 파일 에서 다음 줄 의 요청 수 를 읽 는 것 을 의미 합 니 다.만약 대량의 시계 스캐닝 을 진행 하고 있다 면,Handlerread_rnd_next 의 수 치 는 매우 높 을 것 이다.색인 이 정확 하지 않 거나 색인 을 이용 하지 않 았 음 을 설명 합 니 다.
최적화:
insert 구문 최적화:
1.insert into test values(),(),(),()...
2.서로 다른 클 라 이언 트 에서 여러 줄 을 삽입 하면 insert delayed 문 구 를 사용 하여 더 높 은 속 도 를 얻 을 수 있 습 니 다.delayd 의 미 는 insert 문 구 를 즉시 실행 하 게 하 는 것 입 니 다.사실은 데 이 터 는 메모리 대기 열 에 놓 여 있 고 디스크 에 진정 으로 기록 되 지 않 았 습 니 다.이것 은 각 문 구 를 각각 삽입 하 는 것 보다 훨씬 빠 릅 니 다.low_priority 는 반대로 모든 사용자 가 시 계 를 읽 고 쓴 후에 야 삽입 합 니 다.
3.색인 파일 과 데이터 파일 을 다른 디스크 에 나 누 어 저장 합 니 다.
4.대량 삽입 하면 bulk 를 증가insert_buffer_size 변수 값 방법 으로 속 도 를 높이 지만 MyISAM 표 에 만 사용 합 니 다.
5.한 텍스트 파일 에서 시 계 를 불 러 올 때 load data file 을 사용 합 니 다.보통 insert 를 사용 하 는 것 보다 20 배 빠 릅 니 다.
최적화 group by 구문:
기본적으로 my sql 은 모든 group by 필드 를 정렬 합 니 다.이것 은 order by 와 유사 합 니 다.그룹 by 를 포함 하지만 사용자 가 정렬 결과 의 소 모 를 피 하려 면 order by null 을 지정 하여 정렬 을 금지 할 수 있 습 니 다.
orderby 구문 최적화:
어떤 경우 에는 my sql 에서 order by 문 구 를 만족 시 키 는 색인 을 사용 할 수 있 기 때문에 추가 정렬 이 필요 하지 않 습 니 다.where 조건 과 orderby 는 같은 색인 을 사용 하고 orderby 의 순서 와 색인 의 순서 가 같 으 며 orderby 의 필드 는 모두 오름차 나 내림차 입 니 다.
최적화 패키지 조회:
mysql 4.1 은 하위 조 회 를 지원 하기 시 작 했 지만,일부 경우 하위 조 회 는 더욱 효율 적 인 join 으로 대 체 될 수 있 습 니 다.특히 join 의 수 동적 표 가 색인 이 있 을 때,mysql 은 메모리 에 임시 표를 만 들 필요 가 없 기 때문에 논리 적 으로 두 단계 의 조회 작업 이 필요 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[SQL] - 인덱스의 내부 작동1. 균형 트리의 개념 노드 : 데이터가 저장되는 공간 루트 노드 : 노드의 가장 상위 노드 리프 노드 : 제일 마지막에 존재하는 노드 중간 노드 : 루트, 리프 중간에 끼인 노드 페이지 : MySQL에서 부르는 노...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.