Whispere

Ahoj, mám aplikaci postavenou na Laravel 6.18.16 a řeším jedno zvláštní chování.

Mám skript:

       $array = [];
       for($i = 0; $i < 10000; $i++)
       {
           $array[] = [
             'parent_id' =>  1,
             'slot'         =>  1,
             'status'       =>  1,
             'inserted'     =>  1,
             'activity'     =>  'SLEEPING',
             'time'         =>  '00:00',
             'created_at'   =>  date('Y-m-d H:i:s'),
             'updated_at'   =>  date('Y-m-d H:i:s')
          ];
       }

foreach(array_chunk($array, 100) as $chunk) {
   Table::insert($chunk);
}

Pokud v array_chunk(), zvýším parametr na 2500, tak celý skript se provádí 4x pomaleji. Pokud to zvýším třeba na 5000, tak ještě výrazně více. Nejrychlejší je to paradoxně při vkládání bez rozdělování dat, tedy co řádek, to jeden insert. Blíží se mu jen hodnoty rozdělení po 70 až 100 řádcích/insert. Když se číslo zvýší, celkový běh skriptu také hodně naroste.

Dle logiky by to mělo být obráceně. Ví někdo čím by to mohlo být?

Ešte nie si členom CZ/SK Laravel komunity?

To možeš ľahko zmeniť. Registrácia je zdarma a ako registrovaný člen získaš množstvo výhod. Prečítaj si prečo by si mal byť členom.

Prihlásiť sa Zaregistrovať
Zoradiť odpovede:
xvital
by @xvital (460), pred 3 rokmi

Ahoj, podarilo sa ti na to prist/vyriesit to?

Whispere
by @Whispere (137), pred 3 rokmi

Nn, nepovedlo se mi to zrychlit. Udělal jsem si akorát test a měřil při jakém rozdělení je to nejrychlejší (rozdíly do sekundy) a to nastavil. Ale samotnou příčinu jsem neobjevil a tedy nevyřešil.