Laravel 5: 重度 Select 查询
Laravel 5: Heavy Select Query
我的数据库中有大约 25.000 行 table 'movies'(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);
}
我只是想知道为什么它不执行查询并在没有声明 war 的情况下死掉。
我没有在 .ENV 或 config/database.php 中找到任何有趣的东西来解释在这种情况下会发生什么。
PS。是的,我可以进行服务器端分页和搜索,并且只从数据库中获取 10-25 条记录,问题不在于此。
您绝对应该查看您的 storage\logs
目录以验证错误。获取 25k 行很可能需要大量内存。
事实上,正如您在现实生活中提到的那样,没有必要获取这么多行,因为除非您将它们导出为 CSV 或 XLS。
看起来你 运行 内存不足。尝试查询结果的一半,或者可能只是 100,看看是否至少修复了白页,如果是这样,请使用 chunk:
Movies::chunk(200, function($movies)
{
foreach($movies $movie)
{
var_dump($movie);
}
});
我的数据库中有大约 25.000 行 table 'movies'(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);
}
我只是想知道为什么它不执行查询并在没有声明 war 的情况下死掉。
我没有在 .ENV 或 config/database.php 中找到任何有趣的东西来解释在这种情况下会发生什么。
PS。是的,我可以进行服务器端分页和搜索,并且只从数据库中获取 10-25 条记录,问题不在于此。
您绝对应该查看您的 storage\logs
目录以验证错误。获取 25k 行很可能需要大量内存。
事实上,正如您在现实生活中提到的那样,没有必要获取这么多行,因为除非您将它们导出为 CSV 或 XLS。
看起来你 运行 内存不足。尝试查询结果的一半,或者可能只是 100,看看是否至少修复了白页,如果是这样,请使用 chunk:
Movies::chunk(200, function($movies)
{
foreach($movies $movie)
{
var_dump($movie);
}
});