Install
create database example-update-massive
configure .env
DB_CONNECTION=pgsql
DB_HOST=postgres
DB_PORT=5432
DB_DATABASE=example-update-massive
DB_USERNAME=default
DB_PASSWORD=secret
QUEUE_CONNECTION=database
ITEMS_COUNT=10000
ITEMS_COUNT
é a variavel que irá definir quantos registros a fatory irá criar no banco de dados.
run migrate;
php artisan migrate:fresh --seed
Analyse Insert
php artisan app:mass-insert --count=100
php artisan queue:work --queue=default
Result
quantity |
method |
time seconds |
100 |
Insert1 |
0,166 |
100 |
Insert2 |
0,015 |
100 |
Insert3 |
0,015 |
100 |
Insert4 |
0,044 |
100 |
Insert5 |
0,040 |
100 |
Insert6 |
0,125 |
quantity |
method |
time seconds |
1.000 |
Insert1 |
1,000 |
1.000 |
Insert2 |
0,087 |
1.000 |
Insert3 |
0,087 |
1.000 |
Insert4 |
0,352 |
1.000 |
Insert5 |
0,343 |
1.000 |
Insert6 |
1,000 |
quantity |
method |
time seconds |
10.000 |
Insert1 |
13,000 |
10.000 |
Insert2 |
0,789 |
10.000 |
Insert3 |
0,795 |
10.000 |
Insert4 |
3,000 |
10.000 |
Insert5 |
3,000 |
10.000 |
Insert6 |
11,000 |
quantity |
method |
time seconds |
100.000 |
Insert1 |
2m 43s 163 |
100.000 |
Insert2 |
error |
100.000 |
Insert3 |
8 |
100.000 |
Insert4 |
35 |
100.000 |
Insert5 |
34 |
100.000 |
Insert6 |
2m 27s 147 |
quantity |
method |
time second |
1.000.000 |
Insert1 |
25m 6s 1506 |
1.000.000 |
Insert2 |
error |
1.000.000 |
Insert3 |
1m 27s 87 |
1.000.000 |
Insert4 |
6m 31s 391 |
1.000.000 |
Insert5 |
6m 40s 400 |
1.000.000 |
Insert6 |
20m 50s 1.250 |
Analyse Delete
php artisan app:mass-delete --count=100
php artisan queue:work --queue=default
Result
quantity |
method |
time seconds |
100 |
Delete1 |
0,303 |
100 |
Delete2 |
0,018 |
100 |
Delete3 |
0,013 |
quantity |
method |
time seconds |
1.000 |
Delete1 |
2,000 |
1.000 |
Delete2 |
0,105 |
1.000 |
Delete3 |
0,092 |
quantity |
method |
time seconds |
10.000 |
Delete1 |
27,000 |
10.000 |
Delete2 |
0,938 |
10.000 |
Delete3 |
0,812 |
quantity |
method |
time seconds |
100.000 |
Delete1 |
2m 43s 149 |
100.000 |
Delete2 |
10 |
100.000 |
Delete3 |
8 |
quantity |
method |
time second |
1.000.000 |
Delete1 |
27m 24s 1644 |
1.000.000 |
Delete2 |
1m 49s 109 |
1.000.000 |
Delete3 |
1m 31s 91 |
Analyse Update
Grupo 1:
Atualizar um campo ou mais, para o mesmo grupo.
Result
quantity |
method |
time seconds |
1.000 |
UpdateMassive1Job |
1,00 |
1.000 |
UpdateMassive2Job |
0,01 |
quantity |
method |
time seconds |
10.000 |
UpdateMassive1Job |
14,00 |
10.000 |
UpdateMassive2Job |
0,14 |
quantity |
method |
time seconds |
100.000 |
UpdateMassive1Job |
2m 36s 156 |
100.000 |
UpdateMassive2Job |
1 |
quantity |
method |
time seconds |
1.000.000 |
UpdateMassive1Job |
26m 10s 1570 |
1.000.000 |
UpdateMassive2Job |
15 |
Grupo 2:
Atualizar um campo ou mais diferente para cada transação.
Result
quantity |
method |
time seconds |
1.000 |
UpdateMassive3Job |
1,00 |
1.000 |
UpdateMassive4Job |
0,08 |
1.000 |
UpdateMassive5Job |
0,06 |
1.000 |
UpdateMassive6Job |
7,00 |
quantity |
method |
time seconds |
10.000 |
UpdateMassive3Job |
14,00 |
10.000 |
UpdateMassive4Job |
0,73 |
10.000 |
UpdateMassive5Job |
0,59 |
10.000 |
UpdateMassive6Job |
- |
quantity |
method |
time seconds |
100.000 |
UpdateMassive3Job |
(2m 44s) 164,00 |
100.000 |
UpdateMassive4Job |
8,00 |
100.000 |
UpdateMassive5Job |
7,00 |
100.000 |
UpdateMassive6Job |
- |
quantity |
method |
time seconds |
1.000.000 |
UpdateMassive3Job |
(27m 10s) 1630,00 |
1.000.000 |
UpdateMassive4Job |
(1m 15s) 75,00 |
1.000.000 |
UpdateMassive5Job |
58,00 |
1.000.000 |
UpdateMassive6Job |
- |