Sie könnten CREATE TEMPORARY TABLE temp_table LIKE regular_table
verwenden , aber das wird alle erstellen die Indizes, wenn Sie also INSERT INTO temp_table SELECT * FROM regular_table
ausführen , werden die Indizes neu erstellt - was sehr lange dauern kann.
Oder Sie können die Tabelle erstellen und den Index nachträglich hinzufügen:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
INSERT INTO temp_table SELECT * FROM regular_table
aber der Index wird wieder bei jeder Einfügung aktualisiert.
Der wahrscheinlich effizienteste Weg wäre, die temporäre Tabelle zu erstellen, alles einzufügen und danach den Index zu erstellen:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
ALTER TABLE temp_table DISABLE KEYS
INSERT INTO temp_table SELECT * FROM regular_table
ALTER TABLE temp_table ENABLE KEYS
Auch hier müssen Sie warten, bis der Index erstellt ist, außer dass dies in einem Stück mit der letzten ALTER-Anweisung geschieht.