Rychlost ukladani dat do hashe

Tomas Valousek tomas.valousek na metalmex.cz
Středa Červen 1 16:01:34 MEST 2005


> On Wed, Jun 01, 2005 at 03:25:56PM +0200, Petr Vedral wrote:
>> Dobry den,
>> potrebuji co nejrychleji nacist vetsi mnozstvi zaznamu (100000) z
>> databaze
>> (PostgreSQL+DBI) do hashe. Pricemz klicem zaznamu je cislo zaznamu
>> (nactene z db) a obsahem zaznamu jsou NAZEV_PRVNIHOSLOUPCE=HODNOTA,
>> NAZEV_DRUHEHO_SLOUPCE=HODNOTA... Nazvy sloupcu v hashy odpovidaji nazvum
>> sloupcu v tabulce DB.
>> Eperimentalne jsem se dostal k tomuto reseni.
>> Napada vas prosimvas neco rychlejsiho?
>
> [...]
>
>> Dale jsem zkousel fetchall_hashref(), ktery je cca o 30% pomalejsi nez
>> toto reseni.
>
> selectall_hashref?

Ted jsem to vyzkousel - a je to dvakrat pomalejsi :/

"moje" metoda:
Počet záznamů	Čas
100000	6.093241 s

selectall_hashref
Počet záznamů	Čas
100000	13.121027 s

doufam ze jsem pouzil spravny postup:
$s->{sth} = $s->{SQL}->prepare("SELECT no,obchjmeno AS ob,prijmeni AS
pr,jmeno AS jm,ico AS ic,dic,ulice AS ul,mesto AS me,psc  FROM iskontakty 
limit 100000");

s->{zaz} = $s->{SQL}->selectall_hashref($s->{sth}, 'no');

Momentalne se nejedna o ostre nasazeni, zatim pouze testuji metody, ktere
potom budou pouzity v ostrem enginu.

BTW: existuje v e-mail konferencich nejake pravidlo pro oznaceni
zdrojoveho kodu (v plain-textu)?

// ps: prvni mail jsem omylem poslal z kolegova uctu, kterymu sem menil
nastaveni klienta


Další informace o konferenci Perl