Você pode usar
CREATE TEMPORARY TABLE temp_table LIKE regular_table
, mas isso criará todos os índices, então quando você faz INSERT INTO temp_table SELECT * FROM regular_table
, os índices serão reconstruídos - o que pode ser demorado. Ou você pode criar a tabela e adicionar o índice depois:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
INSERT INTO temp_table SELECT * FROM regular_table
mas o índice será, novamente, atualizado a cada inserção.
Provavelmente a maneira mais eficiente seria criar a tabela temporária, inserir tudo, construir o índice depois:
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
Novamente, você terá que esperar a construção do índice, exceto que isso acontecerá em um pedaço, com a última instrução ALTER.