Existuje řada způsobů, jak optimalizovat hromadné vložky. Některé jsou:
-
LOAD DATA INFILE
. Existuje wrapper API pro . NET . Toto je nejrychlejší způsob, ale má určitá omezení a sémantické rozdíly od jednoduchých vložek. -
Víceřádkový
INSERT
prohlášení:INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...
Neměli byste vkládat 20 000 000 řádků najednou, ale můžete zkusit 1 000-10 000 pro velmi velké zrychlení. Jedná se o jednoduchý a velmi bezproblémový způsob zvýšení rychlosti. Často je možný faktor 10 a někdy i více.
-
Uzamčení stolu (
LOCK TABLES
). -
Dočasné zakázání indexů.
-
Ladění možností MySQL.
-
INSERT DELAYED
(zde to s největší pravděpodobností není tak užitečné).
Dokumentace vám poskytuje propracovanější podrobnosti na možnostech. Některé možnosti závisí na typu tabulky (InnoDB vs. MyISAM ).
Obecný návrh:Vždy určete sloupce, které vkládáte před VALUES
. Díky tomu je kód lépe udržovatelný.