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