읽는 기준
type · rows

어떤 방식으로 얼마나 읽는지 먼저 봅니다. 여기서 이미 풀 스캔과 대량 읽기가 보이면 부담이 큽니다.

Extra

읽은 뒤 추가 작업이 붙었는지 확인합니다. 핵심은 인덱스 안에서 끝났는지, 밖에서 더 일했는지입니다.

인덱스 기반 신호

인덱스를 타고 읽고 있음을 먼저 확인

Using index

커버링 인덱스로 조회가 끝납니다. 테이블 본문까지 내려가지 않아 가장 해석이 쉽습니다.

Using where Using index condition Using MRR Backward index scan

인덱스를 쓰는 중이지만 필터링 방식·범위 접근·읽기 순서를 함께 봐야 합니다. 단독 경고라기보다 type·rows와 같이 해석하는 영역입니다.

먼저 볼 것: SELECT 컬럼이 계속 인덱스에 포함되는지, 그리고 예상 `rows` 대비 실제 필터율이 과하지 않은지 확인합니다.

추가 작업 경고

읽은 뒤 정렬·임시 결과·조인 보조 비용이 붙음

Using filesort

인덱스 순서로 끝나지 못해 별도 정렬이 발생합니다. `ORDER BY` 컬럼 순서와 인덱스 순서를 같이 봐야 합니다.

Using temporary

GROUP BY·DISTINCT·집계 중간 결과를 임시 테이블에 담아 처리하는 신호입니다.

Using join buffer

조인 키 인덱스가 약해 버퍼에 기대는 조인이 일어납니다. 조인 조건 컬럼 인덱스를 우선 확인합니다.

같이 보면 더 위험: `ALL + rows`가 크면 풀 스캔 뒤에 많은 행을 걸러내는 상태입니다. 이때 Extra 경고는 WHERE / ORDER BY / GROUP BY / JOIN 키 인덱스로 바로 이어집니다.