2
두 테이블 company
및 question
에서 큰 쿼리를 실행합니다. 두 테이블은 다음과 같은 방법으로 구성되어 있습니다 : 나는 쿼리 실행을 느리게 보인다 하위 쿼리를 방지하기 위해이를 다시 작성하는 방법을 알아 내기 위해 노력 해왔다성능 향상을위한 MySQL 쿼리 개선
company | question
id | id
name | company_id
| sentiment
SELECT company.id as company_id, company.name, question.sentiment,
(SELECT count(*) FROM question
WHERE question.sentiment=0 AND question.company_id=company.id) AS count
FROM question
JOIN company ON company.id=question.company_id
WHERE question.sentiment = 0 GROUP BY company_id ORDER BY count DESC LIMIT 5
. 질문 표에는 1000 개가 넘는 레코드가 있습니다. 또한 인덱스를 사용하면 실행 시간이 545.037 초에서 180.228 초로 줄어들었지만 여전히 개선해야합니다.
덕분에
시도 '확장 설명'및 최적화 그것으로 무엇을 참조하십시오. 진행 방법에 대한 단서를 줄 수 있습니다. – ethrbunny
느린 쿼리를 진단하려면 설명이나 의역이 아닌 전체 테이블 및 인덱스 정의가 필요합니다. 테이블이 잘못 정의 된 것일 수 있습니다. 색인이 올바르게 작성되지 않았을 수 있습니다. 테이블과 인덱스 정의를 보지 않고는 말할 수 없습니다. –