Ada beberapa cara untuk mengoptimalkan sisipan massal. Beberapa adalah:
-
LOAD DATA INFILE
. Ada API pembungkus untuk . BERSIH . Ini adalah cara tercepat, tetapi memiliki beberapa keterbatasan dan perbedaan semantik dari sisipan sederhana. -
INSERT
Multiple beberapa baris pernyataan:INSERT INTO temperature (temperature) VALUES (1.0), (2.0), (3.0), ...
Anda tidak boleh memasukkan 20.000.000 baris sekaligus, tetapi mungkin ingin mencoba 1.000-10.000 untuk percepatan yang sangat besar. Ini adalah cara yang sederhana dan sangat tidak bermasalah untuk meningkatkan kecepatan. Faktor 10 dan terkadang lebih sering mungkin.
-
Mengunci tabel (
LOCK TABLES
). -
Menonaktifkan indeks untuk sementara.
-
Penyetelan opsi MySQL.
-
INSERT DELAYED
(kemungkinan besar tidak terlalu berguna di sini).
Dokumentasi ini memberi Anda detail yang lebih rumit pada opsi. Beberapa opsi bergantung pada jenis tabel (InnoDB vs. MyISAM ).
Saran umum:Selalu tentukan kolom yang Anda sisipkan di depan VALUES
. Ini membuat kode lebih mudah dipelihara.