我的数据库表中有大约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条记录,问题与此无关。
答案 0 :(得分:2)
看起来你的内存不足了。尝试查询结果的一半,或者只是100,看看是否至少修复了白页,如果是,请使用chunk:
Movies::chunk(200, function($movies)
{
foreach($movies $movie)
{
var_dump($movie);
}
});
答案 1 :(得分:1)
您一定要查看storage\logs
目录以验证错误。它很可能需要大量内存才能获得25k行。
事实上,正如您在现实生活中提到的那样,除非您将它们导出为CSV或XLS,否则无需获得这么多行。