InnoDB poskytuje složitější strukturu klíčů než MyIsam (FOREIGN KEYS
) a regenerace klíčů je v InnoDB opravdu pomalá. Všechny příkazy update/insert byste měli uzavřít do jedné transakce (ty jsou v InnoDB vlastně docela rychlé, jednou jsem měl asi 300 000 vkládacích dotazů na tabulku InnoDb se 2 indexy a trvalo to asi 30 minut, jakmile jsem vložil každých 10 000 vložení do BEGIN TRANSACTION
a COMMIT
trvalo to méně než 2 minuty).
Doporučuji použít:
BEGIN TRANSACTION;
SELECT ... FROM products;
UPDATE ...;
INSERT INTO ...;
INSERT INTO ...;
INSERT INTO ...;
COMMIT;
To způsobí, že InnoDB obnoví indexy jen jednou a ne několik setkrát.
Dejte mi vědět, jestli to fungovalo