mysql - chybí myd soubory
Filip Krejci
krejcif na gmail.com
Pondělí Listopad 19 22:13:35 CET 2007
Ahoj Martine ;)
> Ani to neni jednoznacne -- kdyz jsem pri svych pokusech s DSpamem importoval
> do nove vytvorene tabulky nekolik gigabytu dat (same zapisy, zadne cteni),
> MyISAM s tim byl hotovy za slabou pulhodinku, zatimco InnoDB nad tim
> chroustalo celou noc.
>
> Zcela souhlasim, ze to zavisi na typu workloadu, ale ani prosta uvaha
> o ctenich a zapisech k rozhodnuti nestaci.
Mas pravdu zapomel jsem uvest, ze se jedna o paralelni zapis. Domnival
jsem se, ze to vyplyne z me poznamky o locking levels.
Pokud se tyka sekvencniho jednovlaknoveho zapisu, je pravdepodobne, ze
to bude trvat o neco malo dele. Je to dano tim, ze struktura dat v
innodb je trochu vetsi nez v myisam (i kdyz od verze 5.0 se dost smrskla
diky compact formatu).
Kazdopadne rozdil 30 minut versus cela noc, je dusledek spatneho
nastaveni. S nejvetsi pravdepodobnosti jsi mel zapnuto
innodb_flush_log_at_trx_commit=1 (default kvuli ACID), coz kazdy update
flushuje az na disk! Lepsi je nastavit hodnotu 2 (flush pouze do os
cache jako myisam) nebo 0 (zadne flushovani - nejrychlejsi - srovnatelne
s myisam).
Tohle to je celkem bezna chyba, kdy nekdo udela jen alter table xxx
engine=innodb a pak se divi ze innodb je 100x pomalejsi.
--
Filip Krejci <krejcif na gmail.com>
Bits and Bytes forever
Další informace o konferenci Linux