InnoDB bietet eine komplexere Schlüsselstruktur als MyIsam (FOREIGN KEYS
) und das erneute Generieren von Schlüsseln ist in InnoDB sehr langsam. Sie sollten alle Update/Insert-Anweisungen in eine Transaktion einschließen (diese sind in InnoDB eigentlich ziemlich schnell, sobald ich ungefähr 300.000 Einfügungsabfragen in der InnoDb-Tabelle mit 2 Indizes hatte und es ungefähr 30 Minuten dauerte, nachdem ich alle 10.000 Einfügungen in COMMIT
es dauerte weniger als 2 Minuten).
Ich empfehle die Verwendung von:
BEGIN TRANSACTION;
SELECT ... FROM products;
UPDATE ...;
INSERT INTO ...;
INSERT INTO ...;
INSERT INTO ...;
COMMIT;
Dadurch aktualisiert InnoDB die Indizes nur einmal und nicht einige hundert Mal.
Lassen Sie mich wissen, ob es funktioniert hat