Можете да използвате CREATE TEMPORARY TABLE temp_table LIKE regular_table
, но това ще създаде всички индексите, така че когато направите INSERT INTO temp_table SELECT * FROM regular_table
, индексите ще бъдат възстановени - което може да е продължително.
Или можете да създадете таблицата и след това да добавите индекса:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
INSERT INTO temp_table SELECT * FROM regular_table
но индексът отново ще бъде актуализиран при всяко вмъкване.
Вероятно най-ефективният начин би бил да създадете временната таблица, да вмъкнете всички, да изградите индекс след това:
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
Отново ще трябва да изчакате изграждането на индекса, с изключение на това, че това ще се случи на една част, с последния оператор ALTER.