Der er en række måder at optimere bulkskær på. Nogle er:
-
LOAD DATA INFILE
. Der er en wrapper API til . NET . Dette er den hurtigste måde, men har nogle begrænsninger og semantiske forskelle fra simple indsættelser. -
INSERT
med flere rækker udsagn:INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...
Du bør ikke indsætte 20.000.000 rækker på én gang, men vil måske prøve 1.000-10.000 for en meget stor speed-up. Dette er en enkel og meget uproblematisk måde at øge hastigheden på. En faktor på 10 og nogle gange meget mere er ofte muligt.
-
Låsning af bordet (
LOCK TABLES
). -
Deaktiverer indekser midlertidigt.
-
Indstilling af MySQL-indstillinger.
-
INSERT DELAYED
(sandsynligvis ikke så nyttigt her).
Dokumentationen giver dig flere detaljerede detaljer på mulighederne. Nogle muligheder afhænger af tabeltypen (InnoDB vs. MyISAM ).
Et generelt forslag:Angiv altid de kolonner, du indsætter foran VALUES
. Dette giver en mere vedligeholdelsesvenlig kode.