37 lines
948 B
PHP
37 lines
948 B
PHP
<?php
|
|
|
|
namespace App\Tasks\Mass\MassInsert;
|
|
|
|
use App\Models\Transaction;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class MassInsert4Task
|
|
{
|
|
|
|
/**
|
|
* insert unit with transaction
|
|
*
|
|
* 100 ............ 0,044 s DONE
|
|
* 1_000 ............ 0,352 s DONE
|
|
* 10_000 ............ 3,000 s DONE
|
|
* 100_000 ........... 35,000 s DONE
|
|
* 1_000_000 .......... 391,000 s DONE (6m 31s)
|
|
*
|
|
* 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();
|
|
}
|
|
}
|
|
}
|