InnoDB ger en mer komplex nycklarstruktur än MyIsam (FOREIGN KEYS
) och regenerering av nycklar går väldigt långsamt i InnoDB. Du bör bifoga alla uppdaterings/infoga uttalanden i en transaktion (de är faktiskt ganska snabba i InnoDB, en gång hade jag cirka 300 000 infogningsfrågor på InnoDb-tabellen med 2 index och det tog cirka 30 minuter, när jag väl lade in var 10 000:e infogning i BEGIN TRANSACTION
och COMMIT
det tog mindre än 2 minuter).
Jag rekommenderar att du använder:
BEGIN TRANSACTION;
SELECT ... FROM products;
UPDATE ...;
INSERT INTO ...;
INSERT INTO ...;
INSERT INTO ...;
COMMIT;
Detta kommer att få InnoDB att uppdatera index bara en gång, inte några hundra gånger.
Meddela mig om det fungerade