Puoi usare CREATE TEMPORARY TABLE temp_table LIKE regular_table
, ma ciò creerà tutti gli indici, quindi quando fai INSERT INTO temp_table SELECT * FROM regular_table
, gli indici verranno ricostruiti, il che potrebbe essere lungo.
Oppure puoi creare la tabella e aggiungere l'indice in seguito:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
INSERT INTO temp_table SELECT * FROM regular_table
ma l'indice sarà, ancora una volta, aggiornato ad ogni inserto.
Probabilmente il modo più efficiente sarebbe creare la tabella temporanea, inserire tutto, creare l'indice in seguito:
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
Ancora una volta, dovrai attendere che l'indice venga compilato, tranne per il fatto che accadrà in un blocco, con l'ultima istruzione ALTER.