生病时尝试使用Laravel:
$bonuses = DB::connection('xxx_old')->table('RechnungBonus')->where('RechnungID','<=',10000)->get();
工作正常
$bonuses = DB::connection('xxx_old')->table('RechnungBonus')->get();
返回null
旧数据库中有112000行 - 我需要将其迁移到新方案。是否有一个查询可以执行的最大行数?为什么它生病时不能正常工作?
答案 0 :(得分:2)
没有技术限制,但是您的服务器可以轻松地最大化其RAM,试图一次性处理这么多行。 Laravel提供chunking来防止这种情况:
DB::connection('xxx_old')->table('RechnungBonus')->chunk(100, function ($bonuses) {
foreach ($bonuses as $bonus) {
//
}
});
上面的代码将处理100个项目&#34; chunks&#34;中的表,以限制RAM的使用。挑选一个块大小取决于你 - 更大的块可能会更快一点,但让你更接近最大化RAM。