> 데이터 베이스 > MySQL 튜토리얼 > \'인덱스 사용, 임시 사용, 파일 정렬 사용\' 오류로 MySQL 쿼리를 최적화하는 방법은 무엇입니까?

\'인덱스 사용, 임시 사용, 파일 정렬 사용\' 오류로 MySQL 쿼리를 최적화하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-04 11:15:29
원래의
873명이 탐색했습니다.

How to Optimize MySQL Queries with

MySQL 쿼리의 "인덱스 사용, 임시 사용, 파일 정렬 사용" 오류 처리

MySQL 쿼리 작업 시 흔히 발생하는 문제는 다음과 같습니다. "인덱스 사용, 임시 사용, 파일 정렬 사용"이라는 경고가 표시됩니다. 이 메시지는 MySQL이 성능에 영향을 미칠 수 있는 임시 테이블 및 파일 정렬 작업에 의존하고 있음을 나타냅니다.

이 특별한 경우 쿼리는 두 가지 성능 문제로 어려움을 겪습니다.

  1. 임시 테이블 사용: 쿼리에는 여러 테이블의 다른 GROUP BY 절과 열이 있는 ORDER BY 절이 포함되어 있습니다. 이는 MySQL이 임시 테이블을 생성하도록 트리거합니다.
  2. Filesort 사용: ORDER BY 절은 인덱스를 사용하여 수행할 수 없는 계산된 필드를 기준으로 정렬합니다. 따라서 MySQL은 filesort를 사용합니다.

이러한 문제를 해결하려면:

  • 임시 테이블 문제의 경우: 다른 ORDER BY 및 GROUP BY 절을 사용하지 마세요. 또는 이러한 절에서 동일한 테이블의 열을 사용하십시오.
  • 파일 정렬 문제의 경우: ORDER BY 절에 사용된 계산 필드에 인덱스를 생성해 보십시오.

최적화된 쿼리 버전은 다음과 같습니다.

1

2

3

4

5

6

7

8

9

10

11

12

EXPLAIN SELECT

        el.object_id,

        leo.object_desc,

        COUNT(el.object_id) as count_rows

    FROM

        event_log el

        LEFT JOIN lookup_event_objects leo ON leo.object_id = el.object_id

    GROUP BY

        el.object_id

    ORDER BY

        count_rows DESC,

        leo.object_desc ASC

로그인 후 복사

임시 테이블 및 파일 정렬 작업의 사용을 제거함으로써 이 수정된 쿼리는 성능을 향상시킵니다.

위 내용은 \'인덱스 사용, 임시 사용, 파일 정렬 사용\' 오류로 MySQL 쿼리를 최적화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿