Du kan använda CREATE TEMPORARY TABLE temp_table LIKE regular_table
, men det skapar alla indexen, så när du gör INSERT INTO temp_table SELECT * FROM regular_table
, kommer indexen att byggas om - vilket kan bli långdraget.
Eller så kan du skapa tabellen och lägga till indexet efteråt:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
INSERT INTO temp_table SELECT * FROM regular_table
men indexet kommer återigen att uppdateras vid varje infogning.
Det mest effektiva sättet skulle förmodligen vara att skapa temptabellen, infoga alla, bygga index efteråt:
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
Återigen, du måste vänta på att indexet ska byggas, förutom att det kommer att ske i en bit, med den sista ALTER-satsen.