Er is maar één ding dat je mist. Vooral als u InnoDB gebruikt, wilt u expliciet een ORDER BY-component in uw SELECT-instructie toevoegen om ervoor te zorgen dat u rijen invoegt in de volgorde van de primaire sleutel (geclusterde index):
INSERT INTO product_backup SELECT * FROM product ORDER BY product_id
Overweeg om secundaire indexen in de back-uptabel te verwijderen als ze niet nodig zijn. Dit zal ook wat belasting op de server besparen.
Tot slot, als u InnoDB gebruikt, verminder dan het aantal rijvergrendelingen dat nodig is en vergrendel gewoon expliciet beide tabellen:
LOCK TABLES product_backup WRITE;
LOCK TABLES product READ;
INSERT INTO product_backup SELECT * FROM product ORDER BY product_id;
UNLOCK TABLES;
De vergrendelingsdingen zullen waarschijnlijk geen enorm verschil maken, omdat rijvergrendeling erg snel is (hoewel niet zo snel als tafelvergrendelingen), maar aangezien u het vroeg.