2013-01-18 7 views
0

저는 내 MySQL DB에서 결과를 얻기 위해 PDO를 사용하고 있습니다.PDO fetchAll은 오랜 시간이 걸립니다

실행 명령문 만 수행하는 경우 약 8 seconds이 필요합니다. (동일한 작업을 350 번 연속 수행 함)

fetchAll() 진술을 추가하면 28 초이됩니다. 이것은 정상적인 행동입니까?

나는 웹 서버와 db 서버 사이의 네트워크 테스트 속도를 수행했는데, 그 주변은 87 Mbits/sec이므로 문제가 될 수 없습니다. 어떤 아이디어?

+5

궁금한데, 얼마나 많은 행을 가져 오나요? –

+5

오 ... 코드를 보여주세요! – k102

+3

결과 집합을 레코드별로 처리하는 방법을 찾을 수 없으며 모든 것을 위해 PHP에서 메모리를 할당하지 않아도됩니다. – eggyal

답변

1

실행 시간이 8 초라도 엄청나게 길다. 테이블에 색인이 제대로 생성되지 않았다는 뜻이다. 결과적으로 테이블에서 데이터를 가져 오는 데 오랜 시간이 걸립니다. 임시 테이블을 사용하고있을 수도 있습니다.

"검색"에 사용 된 필드 또는 인덱싱 된 조인 된 테이블에서 검색 키로 사용되는 필드가 있는지 확인하십시오. 인덱스는 약간 까다 롭습니다. 그러나 테스트하려면 쿼리 전에 "EXPLAIN"을 추가하고 그 결과를 출력하십시오. 테이블 당 하나의 행이 생깁니다. "WHERE"또는 "임시 테이블 생성"을 사용하는 경우 이러한 테이블에 인덱스를 추가하여 제거해야합니다.

관련 문제