Mysql
 sql >> Base de données >  >> RDS >> Mysql

InnoDB insère très lentement et ralentit

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é