Im Allgemeinen können Sie eine oder mehrere der folgenden verwenden:
- Starte eine Transaktion, mache Einfügungen, übertrage sie
- Mehrere Werte in eine einzige Einfügung in die Abfrage packen
- Lassen Sie alle Beschränkungen fallen, bevor Sie Einfügungen durchführen, und setzen Sie Beschränkungen nach der Masseneinfügung wieder ein (außer möglicherweise Primärschlüssel, da bin ich mir aber nicht sicher)
- Verwenden Sie
insert into ... select
falls geeignet
Das erste (mit Transaktionen) hilft höchstwahrscheinlich, aber ich bin mir nicht sicher, ob es auf myisam-Tabellen funktioniert, mit innodb macht es einen sehr guten Job - ich benutze diese nur, wenn ich gezwungen bin, mysql zu verwenden, ich bevorzuge postgresql .
In Ihrem speziellen Fall, dem Einfügen von 100.000 Datenzeilen, könnten Sie Folgendes tun:
INSERT INTO status(id, responseCode, lastUpdate) SELECT @row := @row + 1 as row, 503, NOW() FROM
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t,
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t2,
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t3,
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t4,
(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all select 8 union all select 9) t5,
(SELECT @row:=0) t6;
Getestet auf meinem Rechner, bekam:
Query OK, 100000 rows affected (0.70 sec)
Records: 100000 Duplicates: 0 Warnings: 0
Ich bin mir ziemlich sicher, dass Sie für 100000 Zeilen nicht viel schneller werden können.