0 レビュー
0 回答
php-ピボットテーブルに数百万行をレンダリング
536870912バイトの許容メモリサイズが使い果たされました(117770705バイトを割り当てようとしました)
codeigniterを使用しています。何百万ものレコードをレンダリングするピボットテーブルダッシュボードを作成しています。php.iniのmemory_limitを1024Mに調整しました。そして、メモリバッファクエリエラーを防ぐためにクエリを分割しました。これは私のコントローラーです:
enter code here
$c = $this->stock_model->count_data();
$count = $c[0]["c"];
$from_id= 1;
$to_id=100000;
$data = '["BranchCode","rowid","BranchName","SBRDate", "ItemCode","ItemDesc","ItemPrice","ItemBalance","ItemAmount","ItemGroup","ItemCategory", "ItemLine"],';
while(intval($count) > 0){
$view_report = $this->stock_model->view_report($from_id, $to_id);
//var_dump($view_report);
foreach ($view_report as $key => $value) {
$data .= '["'.$value["BranchCode"].'",';
$data .= '"'.$value["rowid"].'",';
$data .= '"'.rtrim($value["BranchName"]).'",';
$data .= '"'.$value["SBRDate"].'",';
$data .= '"'.$value["ItemCode"].'",';
$data .= '"'.str_replace('"','\"',rtrim($value["ItemDesc"])).'",';
$data .= '"'.$value["ItemPrice"].'",';
$data .= '"'.$value["ItemBalance"].'",';
$data .= '"'.$value["ItemAmount"].'",';
$data .= '"'.rtrim($value["ItemGroup"]).'",';
$data .= '"'.rtrim($value["ItemCategory"]).'",';
$data .= '"'.rtrim($value["ItemLine"]).'"],';
}
file_put_contents("assets/textfile/test1.min.js","$.myArray = [".$data."];");
$from_id = intval($from_id) + 100000;
$to_id =intval($to_id) + 100000;
$count = intval($count) - 100000;
}
$this->load->view('stock_view');
私のモデルは、すべてのレコードの単なる選択クエリです。
スクリプトは正常にレンダリングされましたが、ピボットテーブルが表示されていません。 1時間以上ロードされています。エラー表示はありません。そして、データが増えても彼はそれを成し遂げられないのではないかと心配しています。行が増えても制限に達することなく、何百万もの行を最も簡単な方法でレンダリングするにはどうすればよいですか。助けてください。
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。