Możesz użyć CREATE TEMPORARY TABLE temp_table LIKE regular_table
, ale to utworzy wszystko indeksy, więc kiedy robisz INSERT INTO temp_table SELECT * FROM regular_table
, indeksy zostaną odbudowane - co może zająć dużo czasu.
Możesz też utworzyć tabelę i dodać indeks później:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
INSERT INTO temp_table SELECT * FROM regular_table
ale indeks będzie ponownie aktualizowany przy każdej wstawce.
Prawdopodobnie najbardziej wydajnym sposobem byłoby utworzenie tabeli tymczasowej, wstawienie wszystkiego, a następnie zbudowanie indeksu:
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
Ponownie, będziesz musiał poczekać na zbudowanie indeksu, z wyjątkiem tego, że stanie się to w jednym kawałku, z ostatnią instrukcją ALTER.