> 데이터 베이스 > MySQL 튜토리얼 > 큰 테이블에 대한 MySQL 쿼리가 너무 느린 이유는 무엇이며 어떻게 최적화할 수 있습니까?

큰 테이블에 대한 MySQL 쿼리가 너무 느린 이유는 무엇이며 어떻게 최적화할 수 있습니까?

DDD
풀어 주다: 2024-11-24 02:49:09
원래의
273명이 탐색했습니다.

Why is My MySQL Query on a Large Table So Slow, and How Can I Optimize It?

실행 시간이 느린 대형 테이블에 대한 MySQL 쿼리 최적화

MySQL 쿼리에 효율적인 인덱스가 부족하여 실행하는 데 1분 이상 소요됩니다. 데이터 검색을 최적화합니다. 특히 100만 개 이상의 레코드로 인해 테이블의 크기가 커서 문제가 더욱 악화됩니다.

ID 열에 테이블을 인덱싱하는 것은 ID별 정렬과 관련된 쿼리 속도를 높이는 데 중요합니다. 그러나 제공된 정보에 따르면 인덱싱만으로는 충분하지 않은 것 같습니다.

다음은 쿼리 성능을 향상하기 위한 몇 가지 제안 사항입니다.

WHERE 절과 함께 범위 쿼리 사용

특정 레코드 범위를 검색하기 위해 LIMIT를 사용하는 대신 관계 연산자와 함께 WHERE 절을 활용하는 것을 고려해 보세요. 예를 들어, 다음 쿼리는 범위 쿼리를 사용하여 ID 값이 499501보다 크거나 같은 레코드를 선택하고 결과를 500개 행으로 제한합니다.

select * from `ratings` where id >= 499501 limit 500;
로그인 후 복사

이 쿼리는 인덱스된 id 열을 사용하여 원하는 레코드를 효율적으로 찾을 수 있습니다.

쿼리 설명 계획

문제를 추가로 해결하려면 EXPLAIN 쿼리를 실행하여 쿼리 실행 계획에 대한 통찰력을 얻으세요. 이는 쿼리 유형, 사용된 인덱스 및 스캔할 예상 행 수에 대한 세부 정보를 제공합니다.

explain select * from `ratings` where id >= 499501 limit 500;
로그인 후 복사

교착 상태 배제

교착 상태가 발생하는 경우 두 개 이상의 동시 트랜잭션은 서로가 잠금을 해제할 때까지 기다리므로 둘 중 하나가 진행되지 못하게 됩니다. 제공된 정보에서는 교착 상태가 가능한 원인으로 제시되지는 않지만 고려해 볼 가치가 있습니다.

위 내용은 큰 테이블에 대한 MySQL 쿼리가 너무 느린 이유는 무엇이며 어떻게 최적화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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