laravel-performance/app/Tasks/MassInsert/MassInsert4Task.php

38 lines
917 B
PHP

<?php
namespace App\Tasks\MassInsert;
use App\Models\Transaction;
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
class MassInsert4Task
{
/**
* insert unit with transaction
*
* 100 ............ 0,044 s DONE
* 1000 ............ 0,352 s DONE
* 10000 ............ 3,000 s DONE
* 100000 ........... 35,000 s DONE
* 1000000
*
* 1. insert into transactions (id, value, date) values (1, 10, '2023-04-01');
* 2. insert into transactions (id, value, date) values (2, 20, '2023-04-02');
* .... 100.000
*
* - reconstroi os indices, verifica chave, view materializada
*/
public function handle(int $count): void
{
DB::beginTransaction();
try {
Transaction::factory($count)->create();
DB::commit();
} catch (\Exception $exception) {
DB::rollBack();
}
}
}