MySQL 에서 데이터베이스 인덱스 가 실 효 될 수 있 는 상황 에 대한 상세 분석
4779 단어 mysql데이터베이스 인덱스효력 을 잃다
MySQL 검색 어 에 있 는 관련 정 보 를 분석 하려 면 전체 표 조회 인지 부분 조회 인지 explain 을 사용 해 야 합 니 다.
색인 의 장점
4.567917.서버 가 스 캔 해 야 할 데 이 터 량 을 크게 감소 시 켰 다.4.567918.
용법:explain+검색 어.
id:검색 어의 시리 얼 번호 입 니 다.위의 그림 에는 selection 문구 만 있 기 때문에 하나의 시리 얼 번호 만 표 시 됩 니 다.새 겨 진 조회 가 있 으 면 다음 과 같 습 니 다.
select_type:검색 유형 을 나타 내 는 몇 가지 가 있 습 니 다.
simple:간단 한 select(유 니 온 이나 하위 조회 사용 하지 않 음)
primary:가장 바깥쪽 select.
유 니 온:2 층,select 이후 유 니 온 을 사 용 했 습 니 다.
dependent union:union 문장의 두 번 째 select 는 외부 하위 조회 에 의존 합 니 다.
subquery:하위 검색 의 첫 번 째 select
dependent subquery:하위 쿼 리 의 첫 번 째 subquery 는 외부 하위 쿼 리 에 의존 합 니 다.
derived:파생 표 select(from 자구 의 하위 조회)
table:조회 표,결과 집합
type:연결 유형 을 뜻 하 는'join type'이 라 고 합 니 다.쉽게 말 하면 my sql 검색엔진 이 SQL 조건 을 만족 시 키 는 데 이 터 를 찾 는 방식 이다.그 값 은:
시스템 표,표 에는 한 줄 의 데이터 만 있 습 니 다4.567917.const:상수 읽 기,최대 한 개의 기록 만 일치 합 니 다.상수 이기 때문에 실제로 한 번 만 읽 어야 합 니 다
possible_keys:사용 가능 한 색인
key:사용 한 인덱스
ref:ref 열 은 키 와 함께 표 에서 줄 을 선택 할 열 이나 상 수 를 표시 합 니 다.
rows:MySQL 이 조 회 를 실행 할 때 검사 해 야 할 줄 수 를 표시 합 니 다.여러 줄 간 의 데 이 터 를 곱 하면 처리 할 줄 수 를 추산 할 수 있다.
Extra:추가 정보
아래 의 예 에서 GudiNo,StoreId 열 에는 모두 단독 색인 이 있다.
2.1.like 조 회 는'%...'로 시작 하여'xxx%'로 끝 날 때 색인 을 계속 사용 합 니 다.
다음 그림 에서 첫 번 째 문장 에 사 용 된%는 색인 을 사용 하지 않 았 습 니 다.rows 에서 224147 이 고 색인 rows 를 1 로 사용 합 니 다.
2.2 where 구문 에서<>와!=을 사용 합 니 다.
2.3 where 구문 에 or 를 사용 하지만 or 의 모든 필드 에 색인 을 추가 하지 않 았 습 니 다.
이 경우 색인 을 사용 하려 면 or 의 모든 필드 에 색인 을 추가 해 야 합 니 다.
2.4 where 구문 에서 필드 표현 식 작업
2.5 where 구문 에서 Not In 사용
다른 사람 이 쓴 글 을 보면"where 자구 에서 필드 에 대해 null 값 판단 을 하 는 것 을 피해 야 한다.그렇지 않 으 면 엔진 이 색인 사용 을 포기 하고 전체 표 스 캔 을 할 것"이 라 고 말 했다.실측 은 전체 표 스 캔 이 없다.
"다 열 색인 에 대해 서 는 첫 번 째 부분 이 아니면 색인 을 사용 하지 않 습 니 다."실측 은 다 중 색인 을 사용 하 더 라 도 첫 번 째 부분 을 사용 하지 않 으 면 색인 을 명중 시 키 고 전체 표 스 캔 이 없습니다.
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.