주어진 시간에 약 1 밀리미터 정도의 테이블에 InnoDB 스토리지 엔진을 사용해야합니다. 매우 빠른 속도로 레코드가 삽입되고 며칠 내에, 아마도 1 주일 이내에 삭제 될 것입니다. 핑 테이블에는 약 백만 개의 행이 있지만 웹 사이트 테이블에는 약 10,000 개 밖에 없습니다.총 개수 (행) 합계 (행 + 행 2)로 MySQL 문 최적화
select url
from website ws, ping pi
where ws.idproxy = pi.idproxy and pi.entrytime > curdate() - 3 and contentping+tcpping is not null
group by url
having sum(contentping+tcpping)/(count(*)-count(errortype)) < 500 and count(*) > 3 and
count(errortype)/count(*) < .15
order by sum(contentping+tcpping)/(count(*)-count(errortype)) asc;
내가 entrytime에 인덱스 아직 주사위를 추가 :
내 문은 다음입니다. 누구든지 내가이 쿼리의 기본적인 최적화를 조사하기 위해 고려해야 할 것에 관해서 나에게 뼈를 던질 수 있습니까? 결과 집합은 단지 200 행과 같기 때문에 나는 거기에서 죽지 않을 것이다.
조회중인 관계의 스키마 ('CREATE TABLE' 문)를 표시하려면 설명을 편집하십시오. – bignose
설명을 편집하여이 쿼리에서 RDBMS 쿼리 설명 자의 출력을 표시하십시오. – bignose
집에있는 PC로 돌아 가면이 작업을 수행합니다. 지금은 다음과 같이 말할 수 있습니다. 두 테이블 각각에 1 개의 기본 키가 있으며 두 경우 모두 INT입니다. 유일한 색인은 기본 키에 있습니다. 나는 내가 만든 간단한 것들이 아무 것도하지 않았던 것처럼 특정한 방법으로 더 많은 인덱스를 만들어야하는지 궁금해하고있었습니다. – Zombies