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

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

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 절에 사용된 계산 필드에 인덱스를 생성해 보십시오.

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

    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으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!