InnoDB fournit une structure de clés plus complexe que MyIsam (FOREIGN KEYS
) et la régénération des clés est très lente dans InnoDB. Vous devez inclure toutes les instructions de mise à jour/insertion dans une transaction (celles-ci sont en fait assez rapides dans InnoDB, une fois que j'ai eu environ 300 000 requêtes d'insertion sur la table InnoDb avec 2 index et cela a pris environ 30 minutes, une fois que j'ai inclus toutes les 10 000 insertions dans BEGIN TRANSACTION
et COMMIT
cela a pris moins de 2 minutes).
Je recommande d'utiliser :
BEGIN TRANSACTION;
SELECT ... FROM products;
UPDATE ...;
INSERT INTO ...;
INSERT INTO ...;
INSERT INTO ...;
COMMIT;
Cela obligera InnoDB à actualiser les index une seule fois et non plusieurs centaines de fois.
Dites-moi si cela a fonctionné