Mysql
 sql >> Datenbank >  >> RDS >> Mysql

InnoDB fügt sehr langsam ein und verlangsamt sich

InnoDB bietet eine komplexere Schlüsselstruktur als MyIsam (FOREIGN KEYS ) und das erneute Generieren von Schlüsseln ist in InnoDB sehr langsam. Sie sollten alle Update/Insert-Anweisungen in eine Transaktion einschließen (diese sind in InnoDB eigentlich ziemlich schnell, sobald ich ungefähr 300.000 Einfügungsabfragen in der InnoDb-Tabelle mit 2 Indizes hatte und es ungefähr 30 Minuten dauerte, nachdem ich alle 10.000 Einfügungen in TRANSAKTION BEGINNEN und COMMIT es dauerte weniger als 2 Minuten).

Ich empfehle die Verwendung von:

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

Dadurch aktualisiert InnoDB die Indizes nur einmal und nicht einige hundert Mal.

Lassen Sie mich wissen, ob es funktioniert hat