2011-12-11 3 views
0

나는 mysql SELECT 쿼리가 빠르며 (< 0.1 초), 처음 실행할 때만. 인덱스를 사용하여 3 개의 테이블을 결합하고 비교적 단순한 WHERE 문을 사용합니다. phpMyAdmin에서 손으로 그것을 실행할 때 (항상 캐쉬되지 않는 곳의 숫자가 바뀌는 것) 항상 빠르지 만, PHP가 여러 행을 연속적으로 실행하면 첫 번째 것은 빠르며 다른 것은 빠릅니다. ~ 400 초 동안 걸으십시오. 나의 유일한 추측은 어떻게 든 mysql이 연결을 위해 메모리를 모두 소모하고 비싼 페이징을 수행해야한다는 것입니다.mysql 쿼리를 처음으로 처음으로 실행

일반적인 문제는 어떻게 해결할 수 있습니까?하지만 구체적인 질문은 실제로 닫히지 않고 연결을 다시 시작하지 않고 어떻게 php에서 오는 이러한 쿼리를 phpmyadmin에서 오는 쿼리와 별도로 볼 수 있습니까? 요청이 완료되면 mysql에 메모리를 비우라고 알려주며 메모리 문제와 같은 소리를 내는가?

+0

실제 SQL을 사용하지 않으면 문제가 발생합니다. – ajreal

답변

0

글쎄, 적어도 내 경우에는 답을 찾았고, 비슷한 문제가있는 미래의 누군가를 위해 여기에두고있다. 내가 실행중인 쿼리는 많은 결과를 반환했으며 MYSQL's query cache은 많은 오버 헤드를 유발했습니다. 질의를 실행하면 MYSQL은 그 결과를 저장하여 미래의 동일한 요청에 신속하게 응답 할 수 있습니다. 내가해야만하는 것은 SQL_NO_CACHE를 넣었고 속도는 정상으로 되돌아갔습니다. 들어오는 쿼리가 큰지 또는 결과가 매우 큰지 확인해보십시오. MySQL을 사용하여 물건을 걷어차는시기를 결정하는 데 상당한 리소스가 필요할 수 있습니다.

관련 문제