내 MySQL 쿼리로 인해 임시 테이블 및 파일 정렬이 발생하는 이유는 무엇입니까?
MySQL의 임시 및 파일 정렬 문제: 스키마 및 쿼리 분석
조회 테이블과 로깅 테이블이 있는 이벤트 추적 시스템에서, 개체 통계를 중요도 내림차순으로 표시하려는 쿼리에 문제가 발생합니다. 적은 수의 항목으로 쿼리가 올바르게 작동하지만 EXPLAIN 결과는 최적화 가능성을 시사합니다.
문제의 쿼리는 event_log와 lookup_event_objects 테이블 간의 왼쪽 조인을 활용하여 결과를 object_id별로 그룹화하고 count_rows별로 정렬합니다. 내림차순, object_desc가 오름차순으로 옵니다. 그러나 이 쿼리는 임시 테이블 및 파일 정렬 사용에 대한 경고를 생성합니다.
MySQL은 쿼리에 GROUP BY 절과 다른 ORDER BY 절이 포함되거나 정렬 또는 그룹화가 아닌 다른 테이블에서 참조되는 경우 임시 테이블을 사용합니다. 조인의 첫 번째 것. 이 경우 정렬은 계산된 필드를 기반으로 하므로 인덱스 사용이 불가능하므로 filesort를 사용합니다.
문제를 해결하려면 leo.object_desc에 대한 ORDER BY 절을 제거하세요. 이렇게 하면 임시 테이블과 파일 정렬이 필요 없어 쿼리 성능이 향상됩니다.
<code class="sql">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;</code>
위 내용은 내 MySQL 쿼리로 인해 임시 테이블 및 파일 정렬이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alter Table 문을 사용하여 MySQL에서 테이블을 어떻게 변경합니까?

MySQL의 문제를 해결하는 방법 공유 라이브러리를 열 수 없습니다.

Linux에서 MySQL을 실행합니다 (Phpmyadmin이있는 Podman 컨테이너가 포함되지 않음)

인기있는 MySQL GUI 도구는 무엇입니까 (예 : MySQL Workbench, Phpmyadmin)?
