sql >> Base de Datos >  >> RDS >> Mysql

InnoDB inserta muy lento y ralentizando

InnoDB proporciona una estructura de claves más compleja que MyIsam (FOREIGN KEYS ) y la regeneración de claves es muy lenta en InnoDB. Debe adjuntar todas las declaraciones de actualización/inserción en una transacción (esas son bastante rápidas en InnoDB, una vez que tuve alrededor de 300 000 consultas de inserción en la tabla de InnoDb con 2 índices y tomó alrededor de 30 minutos, una vez que encerré cada 10 000 inserciones en BEGIN TRANSACTION y COMMIT tomó menos de 2 minutos).

Recomiendo usar:

BEGIN TRANSACTION;
SELECT ... FROM products;
UPDATE ...;
INSERT INTO ...;
INSERT INTO ...;
INSERT INTO ...;
COMMIT;

Esto hará que InnoDB actualice los índices solo una vez, no unos cientos de veces.

Avísame si funcionó