가입 상대적으로 적은 수의 행을 감안할 때 믿을 수 없을 정도로 느린 것처럼 보이는 결과를 내게 돌려 주라. 내가 여기서 뭔가 잘못하고있는거야?MySQL의 성능 저하는 내가 내가 다음 쿼리를 실행할 때 함께 조인 테이블의 몇 가지있다 쿼리
나는 내가 다음을 얻을 쿼리에 EXPLAIN 실행하는 경우 :
select_type table type possible_keys key key_len ref rows extra
=====================================================================================
simple article all null null null null 762 using temporary; using filesort
simple authors all null null null null 5061 using where; using join buffer
두 테이블이 InnoDB에 있습니다. 나는 상당히 낮은 사양 (Windows XP, 1GHz, 1GB RAM) 인 로컬 컴퓨터에서이 프로그램을 실행하고 있지만 그렇다고하더라도이 프로그램이 더 빠를 것이라고 생각했을 것입니다. 테이블에 몇 개의 행을 추가하면 초 단위가 아닌 분 단위로 시작됩니다.
의견이 있으십니까? 아래
표 구조 :
Article:
field type null key default extra
=======================================================
id int yes null
year char(20) yes null
volume char(20) yes null
issue char(20) yes null
title text yes null
Authors:
field type null key default extra
=======================================================
id int yes null
last_name char(100) yes null
initials char(10) yes null
당신이'authors.last_name'에 인덱스를 가지고 있습니까? 조인에 사용되는 열에 대한 인덱스가 있습니까? 'authors.last_name'에 색인이 있습니까? 인덱스가 전혀없는 경우 테이블 크기가 커지면 느려지고 느려집니다. –
yout 테이블 구조도 게시하십시오. (나는'authors.last_name'과'article.year'을 의미했습니다.) –
아니요, 현재 쿼리에 사용중인 열에 대한 인덱스가 없습니다. 좋은 지적입니다. 이 단계에서 다루기에는 꽤 작은 테이블처럼 보였으므로 추가하지는 않았지만, 영향을받는 열에 인덱스를 추가하고 아무 것도 해결하는지 살펴 보겠습니다. – DrNoFruit