Det finns ett antal sätt att optimera bulkskär. Vissa är:
-
LOAD DATA INFILE
. Det finns ett wrapper API för . NET . Detta är det snabbaste sättet, men har vissa begränsningar och semantiska skillnader från enkla inlägg. -
Flerrads
INSERT
uttalanden:INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...
Du bör inte infoga 20 000 000 rader på en gång, men kanske vill prova 1 000-10 000 för en mycket stor hastighet. Detta är ett enkelt och mycket oproblematiskt sätt att öka hastigheten. En faktor på 10 och ibland mycket mer är ofta möjligt.
-
Låsa tabellen (
LOCK TABLES
). -
Inaktiverar index tillfälligt.
-
MySQL-alternativinställning.
-
INSERT DELAYED
(förmodligen inte så användbart här).
Dokumentationen ger dig mer utförliga detaljer på alternativen. Vissa alternativ beror på tabelltypen (InnoDB kontra MyISAM ).
Ett allmänt förslag:Ange alltid kolumnerna som du infogar framför VALUES
. Detta gör koden mer underhållbar.