Whispere

Whispere

@Whispere

My BIO is empty. Try checking my profile later.

Jan 6, 2021

Laravel testy databáze

Whispere odpovedal v téme Laravel testy databáze

Vyřešeno, problém byl v konfiguraci, kdy se testy prováděly na localhostu na "produkční" databázi namísto na testovací (databaze_test).

Dec 2, 2020

Laravel testy databáze

Whispere odpovedal v téme Laravel testy databáze

Aha, to mě nenapadlo. Zmátlo mě, že když se dívám do "database_test", tak tam se během testů provedou migrace, ale jinak tabulky jsou prázdné.

Nov 27, 2020

Laravel testy databáze

Whispere vytvoril tému Laravel testy databáze

Ahoj, jak se řeší, když potřebuji testovat, zda se vložil správný počet záznamů do databáze? Dohledával jsem to, ale nemohu nic kloudného najít, resp. vše se to řeší obezličkami typu mockery (kde jestli jsem správně pochopil, tak to jen simuluji). Čekal bych normální řešení, kdy se vkládají data do databáze a z ní je poté kontroluji, když už se při testech dělají migrace.

Aug 11, 2020

INSERT & chunk, proč je skript s chunk(100) rychlejší než s chunk(1000)

Whispere odpovedal v téme INSERT & chunk, proč je skript s chunk(100) rychlejší než s chunk(1000)

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.

Jun 12, 2020

INSERT & chunk, proč je skript s chunk(100) rychlejší než s chunk(1000)

Whispere vytvoril tému INSERT & chunk, proč je skript s chunk(100) rychlejší než s chunk(1000)

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?