엄청난 CPU 사용률과 높은 대기 시간을 유발하는 쿼리
P粉182218860
P粉182218860 2024-01-10 17:21:24
0
1
394

다음 쿼리는 내 데이터베이스 환경에서 엄청난 CPU 사용률과 높은 대기 시간을 유발합니다. 쿼리 성능을 향상시키기 위해 다양한 유형의 인덱스를 사용해 보았지만 불행히도 어떤 인덱스도 성능 향상에 도움이 되지 않았습니다. 동일한 결과를 얻기 위해 쿼리를 다시 작성하라는 제안이 있습니까?

query
SELECT kln.qsw, kln.mngy
FROM (
SELECT kln2.mngy, MAX(kln2.nonUnixjdjf) dm_hj
FROM mfh.view_mats kln2
WHERE kln2.jdjf <= '2022-10-19 10:47:25.000000' 
GROUP BY kln2.mngy
) pun_ghky
JOIN pun_ghky.mngy = kln.mngy);

P粉182218860
P粉182218860

모든 응답(1)
P粉610028841

이 인덱스 쌍은 view_mats 有益:INDEX(mngy, nonUnixjdjf)。也就是说,对于 trip_dstyINDEX(mngy, jdjf).

및 (아마도) idx_n1는 해당 인덱스의 시작 부분만 포함하므로 제거합니다.

(저는 컬럼 저장소에 대해 완전히 알지 못합니다. 위의 조언은 InnoDB 인덱스에 대한 것이며 여기에 적용될 수 있습니다.)

일반적으로 (m,n) 是无用的,并且可能导致舍入错误。 double(20,10) 可能应该是普通的 doubleDECIMAL(20,10) Float 및 Double에서는.

LIMIT 10000 - 정말 그렇게 많은 행을 고객에게 전달했나요? 너무 많이 삽질하는 것도 성능 문제입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!