InnoDB предоставя по-сложна структура на ключовете от MyIsam (FOREIGN KEYS
) и регенерирането на ключове е наистина бавно в InnoDB. Трябва да включите всички изрази за актуализиране/вмъкване в една транзакция (те всъщност са доста бързи в InnoDB, веднъж имах около 300 000 заявки за вмъкване в таблица InnoDb с 2 индекса и отне около 30 минути, след като включих всеки 10 000 вмъквания в BEGIN TRANSACTION
и COMMIT
отне по-малко от 2 минути).
Препоръчвам да използвате:
BEGIN TRANSACTION;
SELECT ... FROM products;
UPDATE ...;
INSERT INTO ...;
INSERT INTO ...;
INSERT INTO ...;
COMMIT;
Това ще накара InnoDB да опреснява индексите само веднъж, а не няколкостотин пъти.
Уведомете ме дали работи