Istnieje wiele sposobów optymalizacji wstawek zbiorczych. Niektóre z nich to:
-
LOAD DATA INFILE
. Istnieje interfejs API dla . NET . Jest to najszybszy sposób, ale ma pewne ograniczenia i różnice semantyczne w porównaniu z prostymi wstawkami. -
Wielowierszowy
INSERT
oświadczenia:INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...
Nie powinieneś wstawiać 20.000.000 wierszy na raz, ale możesz spróbować 1.000-10.000, aby uzyskać bardzo duże przyspieszenie. To prosty i bardzo bezproblemowy sposób na zwiększenie prędkości. Często możliwy jest współczynnik 10, a czasem znacznie więcej.
-
Blokowanie tabeli (
LOCK TABLES
). -
Tymczasowe wyłączenie indeksów.
-
Strojenie opcji MySQL.
-
INSERT DELAYED
(najprawdopodobniej nie jest to tutaj przydatne).
Dokumentacja zawiera bardziej szczegółowe informacje na opcjach. Niektóre opcje zależą od typu tabeli (InnoDB w porównaniu z MyISAM ).
Ogólna sugestia:zawsze określaj kolumny, które wstawiasz przed VALUES
. Dzięki temu kod jest łatwiejszy w utrzymaniu.