Mysql
 sql >> Database >  >> RDS >> Mysql

InnoDB si inserisce molto lentamente e rallentando

InnoDB fornisce una struttura delle chiavi più complessa rispetto a MyIsam (FOREIGN KEYS ) e la rigenerazione delle chiavi è molto lenta in InnoDB. Dovresti racchiudere tutte le istruzioni di aggiornamento/inserimento in una transazione (quelle in realtà sono abbastanza veloci in InnoDB, una volta che ho avuto circa 300 000 query di inserimento sulla tabella InnoDb con 2 indici e ci sono voluti circa 30 minuti, una volta racchiuso ogni 10 000 inserimenti in BEGIN TRANSACTION e COMMIT ci sono voluti meno di 2 minuti).

Consiglio di utilizzare:

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

Ciò farà sì che InnoDB aggiorni gli indici solo una volta, non poche centinaia di volte.

Fammi sapere se ha funzionato