2015-05-10 108 views
0

我的數據庫表中有大約25.000行「電影」(InnoDB,17.5 mb) 當我試圖讓他們都顯示在我的管理面板中時,什麼也沒有發生。只有5-8秒待定和白色屏幕。沒有顯示的錯誤,只是沒有。 (最大執行時間是3600秒,因爲它在本地機器上)。我簡單的地獄代碼:Laravel 5:重選查詢

public function index() 
{ 
    $data['movies'] = Movies::all(); 

    dd('This var_dump & die never fires'); 

    // return view('admin.movies', $data); 
} 

我只是想知道爲什麼它不執行查詢,只是沒有聲明戰爭死亡。

我沒有在.ENV或config/database.php中找到任何有趣的東西來解釋在這種情況下會發生什麼。

PS。是的,我可以做服務器分頁和搜索,並從數據庫中只取10-25條記錄,問題不在於此。

+1

如果嘗試一次加載25K記錄,所有的賭注都關閉 - 讓獨自爲他們每個人創造雄辯的對象。 –

+0

是否涉及PHP?對於某些形式的數據,擴展因子是40x。如果這適用於您的情況,那麼這個數字就會高達幾千兆字節。 –

+0

您是否期望瀏覽器可以處理這些數據,而不是該服務器首先將數據吐出。 – Kyslik

回答

2

看起來你正在耗盡內存。嘗試quering一半,結果的,或者只是100,看看是否能至少修復白頁,如果是用大塊:

Movies::chunk(200, function($movies) 
{ 
    foreach($movies $movie) 
    { 
     var_dump($movie); 
    } 
}); 
1

你一定要看看你的storage\logs目錄來驗證錯誤。這很可能需要大量的內存獲得25k行。

事實上,正如你在現實生活中提到的那樣,沒有必要得到那麼多的行,因爲除非你將它們導出爲CSV或XLS。