Autor Zpráva
ondrej256
Profil *
Dobrý den,

dělal jsem hromadný import dat do databáze, co záznam to insert a srovnal to s časem při použítí multi-insertu (co insert to 100 záznamů).

Samozřejmě jsem očekával, že rychlost multi-insertu bude mnohem větší a taky byla. Když jsem se, ale sám sebe zeptal: "Proč?", tak jsem si nebyl schopen odpovědět.

Dokázal by někdo vysvětlit proč je rychlost multi-insertu větší. Testoval jsem to na localhostu, takže sít nezpomalovala běh.
Keeehi
Profil
Každý dotaz má nějaký overhead. Kromě samotného uložení dat je třeba dotaz nejprve rozparsovat, zjistit, zda má prohlášený uživatel práva na zápis do té tabulky a další. No a ty akce, které stačí provést jednou za dotaz se při multi-insertu ušetří a to způsobuje lepší čas.
Dále co na to může mít vliv jsou indexy. Při přidání nové položky je možné, že bude potřebné přestavět strom nad indexy. Když databázi pošleš najednou 100 položek, může si nad pořadím jejich ukládání provést nějaké optimalizace aby k výrazným změnám v stromu nad indexy nedocházelo tak často.

Nejsem odborník na databáze takže je možné, že se žádné optimalizace nad indexy nedělají protože to může být třeba náročnější než samotné přestavení stromu. Ale ten overhead vliv má. dev.mysql.com/doc/refman/5.0/en/insert-speed.html

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0