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