Php 许多记录的海量插入laravel

Php 许多记录的海量插入laravel,php,mysql,laravel,laravel-4,eloquent,Php,Mysql,Laravel,Laravel 4,Eloquent,我试图从sql表A检索数据,修改一些列,然后将修改后的列插入sql表B 然而,我的问题是,当我使用: $customer= new Customer; $fakecustomer= new Fakecustomer; $fake_customer_name_records = $fakecustomer->get()->toArray(); foreach($fake_customer_name_records

我试图从sql表A检索数据,修改一些列,然后将修改后的列插入sql表B

然而,我的问题是,当我使用:

    $customer= new Customer;
    $fakecustomer= new Fakecustomer;

            $fake_customer_name_records = $fakecustomer->get()->toArray();

               foreach($fake_customer_name_records as $record){

            //process columns for each record

                 $fake_customer_name_records_arry[]=array(
                  'last_name'=>$last_name,
                  'first_name'=>$first_name,
                  'home_phone'=>$phonenumber,
                  );
}

            $customer->insert($fake_customer_name_records_arry);
它只能插入大约1000条记录。在拉威尔有没有办法让我处理大约60000条记录


谢谢

每次迭代使用一个额外变量并求和1,当达到1000(或更低)时,执行“插入”并重置计数器。

每次迭代使用一个额外变量并求和1,当达到1000(或更低)时,执行“插入”并重置计数器。

您是否尝试过使用
DB::disableQueryLog()禁用查询日志?我也有同样的问题,这个漂亮的女孩解决了它


此外,在处理迁移或某些需要花费大量时间的过程时,请尝试创建
命令
,而不是尝试使用
控制器

您是否尝试过使用
DB::disableQueryLog()禁用查询日志?我也有同样的问题,这个漂亮的女孩解决了它


此外,在处理迁移或某些需要花费大量时间的过程时,请尝试创建
命令
,而不是尝试使用
控制器

我建议在这里使用“chunk”选项,并在“chunk”中处理记录。在我看来,这更像是土生土长的方式。以下是医生们所说的:

分块结果

如果您需要处理大量(数千)雄辩的记录,请使用 chunk命令允许您在不消耗所有RAM的情况下执行以下操作:

User::chunk(200, function($users)
{
    foreach ($users as $user)
    {
        //
    }
});
传递给该方法的第一个参数是所需的记录数 希望收到每个“块”。闭包作为第二个参数传递 将为从数据库中提取的每个块调用


链接阅读更多内容:

我建议在这里使用“chunk”选项,并在“chunks”中处理记录。在我看来,这更像是土生土长的方式。以下是医生们所说的:

分块结果

如果您需要处理大量(数千)雄辩的记录,请使用 chunk命令允许您在不消耗所有RAM的情况下执行以下操作:

User::chunk(200, function($users)
{
    foreach ($users as $user)
    {
        //
    }
});
传递给该方法的第一个参数是所需的记录数 希望收到每个“块”。闭包作为第二个参数传递 将为从数据库中提取的每个块调用


链接阅读更多信息:

Faker是一个PHP库,它为您生成假数据。无论您需要引导数据库、创建美观的XML文档、填写持久性以对其进行压力测试,还是匿名化从生产服务获取的数据,Faker都适合您

使用此软件包,
composer需要fzaninoto/faker

    $faker = Faker\Factory::create(); 
    for($i=1; $i<=100; $i++){
        $s = new User();
        $s->name = $faker->name;
        $s->email = $faker->email;
        $s->comments = $faker->text;  
        $s->save();
    } 
$faker=faker\Factory::create();
对于($i=1;$iname=$faker->name;
$s->email=$faker->email;
$s->comments=$faker->text;
$s->save();
} 

您还可以从

中阅读更多详细信息Faker是一个为您生成虚假数据的PHP库。无论您需要引导数据库、创建美观的XML文档、填写持久性以对其进行压力测试,还是匿名化从生产服务获取的数据,Faker都适合您

使用此软件包,
composer需要fzaninoto/faker

    $faker = Faker\Factory::create(); 
    for($i=1; $i<=100; $i++){
        $s = new User();
        $s->name = $faker->name;
        $s->email = $faker->email;
        $s->comments = $faker->text;  
        $s->save();
    } 
$faker=faker\Factory::create();
对于($i=1;$iname=$faker->name;
$s->email=$faker->email;
$s->comments=$faker->text;
$s->save();
} 

您还可以阅读

中的更多详细信息,如果您告诉我们当您尝试处理60000时会发生什么,可能会有所帮助?如果您告诉我们当您尝试处理60000时会发生什么,可能会有所帮助?也许您可以帮助我。我想将chunk实现到我的案例中。请看以下内容: