pomale MySQL
Michal Bilcik
archive na inmail.sk
Středa Leden 9 08:39:30 CET 2008
Nazdar,
9. 1. 2008, Bruce:
> mam server s 2 x Opteron 246 Debian Etch (amd64) a MySQL 5.0.32 po
> defaultnej instalacii a bez zasahu do configu. Dnes som vytvoril jednu
> databazu s InnoDB a prave importujem asi milion insertov zo suboru cez
> mysql < subor.sql (subor ma 50 MB). Tato operacia bezi uz 50 minut a je
> hotovych asi 930000 dotazov z 1000000. Jedno jadro je vytazene na 100%,
> druhe takmer vobec, procesy mysqld konzumuju asi 2x15-25% CPU. Nieje
> toto trocha dlha doba na prevedenie takejto operacie alebo je to uplne v
> poriadku? Pokial by ma vedel niekto nakopnut, na co sa mam zamerat,
> budem vdacny.
To je sposobene tym, ze v InnoDB sa narozdiel od MyISAM pouzivaju
transakcie, takze po kazdom INSERTE sa robi commit a este sa
kontroluje refernecna integrita (to MyISAM tiez nerobi).
Skus do toho dumpu (subor.sql) dat na zaciatok a koniec nieco taketo:
SET AUTOCOMMIT = 0;
SET FOREIGN_KEY_CHECKS=0;
...
.. tvoj dump ..
...
SET FOREIGN_KEY_CHECKS = 1;
COMMIT;
SET AUTOCOMMIT = 1;
t.j. commit sa urobi az po prebehnuti celeho importu nie za kazdym
INSERTom a pocas importu sa nebude kontrolovat referencna integrita.
--
caf,
Michal Bilcik
Další informace o konferenci Linux