1

私はWebサービスを考え出しました。背後に MySQL-DB があり、Web サービスは 3 つのパラメータを想定しています。"From"-Value は To-Value、"fmt" は format-value です。このような:

"...requests?from=2011-10-18 16:15:00&to=2013-03-19 16:30:00&fmt=csv"

私が得るものは

"Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 30720
 bytes) in...".

私はそれが何を意味するかを知っていますが、私は次のことを理解しました。私のSelect(私が返したいデータを収集するため)がトリガーされる前に、私はちょうど2.75MByteメモリを費やしています。私の選択は終了し、メモリは約 237,75MByteです。大量のデータがある場合は理解できますが、最後に大きなcsvファイルを作成します8.1MByte。Cake の select について知っておくべきことはありますか?

コードを切り取った:

$condition = array('conditions'=> array(
                         'created_at >= "'. $this->params['url']['from'].
                         '"AND created_at <="'. $this->params['url']['to'].'"'
                         )
                   );           
$this->output_data = $this->LogRequest->find('all', $condition);
4

1 に答える 1

0

を使用していると思いますContainableBehavior

その場合、次を実行する前に recursive を -1 に設定する必要がありますfind()

$this->LogRequest->recursive = -1;

于 2013-03-19T12:52:54.697 に答える