Laravel 5:重选查询

时间:2015-05-10 18:47:20

标签: laravel eloquent innodb laravel-5

我的数据库表中有大约25.000行,电影' (InnoDB,17.5 mb) 当我试图让它们全部显示在我的管理面板中时,没有任何反应。只需5-8秒等待和白屏。没有显示错误,只是没有。 (最长执行时间为3600秒,因为它在我的本地计算机上)。我的简单地狱代码:

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条记录,问题与此无关。

2 个答案:

答案 0 :(得分:2)

看起来你的内存不足了。尝试查询结果的一半,或者只是100,看看是否至少修复了白页,如果是,请使用chunk:

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

答案 1 :(得分:1)

您一定要查看storage\logs目录以验证错误。它很可能需要大量内存才能获得25k行。

事实上,正如您在现实生活中提到的那样,除非您将它们导出为CSV或XLS,否则无需获得这么多行。