2013-12-13 5 views
0

FOSRestBundle은 정상적으로 작동하지만 50,000 개 이상의 레코드가있는 큰 JSONArray를 반환하려고 시도 할 때마다 클라이언트는 5 분 이상 시간이 초과됩니다.FOSRestBundle을 사용하여 + 100K 행의 큰 테이블을 반환합니다.

이것은 내 컨트롤러

use FOS\RestBundle\Controller\FOSRestController; 
use FOS\RestBundle\Routing\ClassResourceInterface; 

class ProductController extends FOSRestController implements ClassResourceInterface { 

    public function cgetAction(){ 
     $data = $this->getDoctrine()->getRepository('MyApiBundle:Product')->findAll(); 
     $view = $this->view($data); 
     return $this->handleView($view);    
    } 
} 

이며,이

fos_rest: 
    param_fetcher_listener: true 
    body_listener: true 
    format_listener: true 
    view: 
     view_response_listener: 'force'   
     default_engine: php 

업데이트 한 내 config.yml입니다 : 내가 엔티티 모두에서 관계를 제거 할 때마다 잘 작동합니다.

+0

적은 수의 레코드가 반환됩니까? 진심으로, PHP는 거대한 데이터 세트를 전송하기위한 최상의 솔루션이 아닙니다. 페이지 매김 사용을 고려하십시오. – Cerad

답변

1

고객에게 시각적 데이터를 제공하는 경우 읽을 수있는 양 이상의 정보를 반환하는 것은 의미가 없습니다. 항상로드를 제한하기 위해 클라이언트 및 서버 측의 데이터를 페이지 매기기를 원합니다.

+0

나는 이것을 사용하여 서버 데이터베이스를 클라이언트 데이터베이스와 동기화한다. – mghazal

+0

@mghazal hm 어떤 종류의 데이터베이스를 사용하고 있습니까 ?? 나는 복제 사용을 고려할 것이다. 예 : 수동으로 동기화하는 대신 mongodb http://docs.mongodb.org/manual/core/replication-introduction/ 또는 mysql http://dev.mysql.com/doc/refman/5.0/en/replication.html을 사용하는 경우 –

관련 문제