Bạn có thể sử dụng CREATE TEMPORARY TABLE temp_table LIKE regular_table
, nhưng điều đó sẽ tạo ra tất cả các chỉ mục, vì vậy khi bạn thực hiện INSERT INTO temp_table SELECT * FROM regular_table
, các chỉ mục sẽ được xây dựng lại - có thể dài.
Hoặc, bạn có thể tạo bảng và thêm chỉ mục sau đó:
CREATE TEMPORARY TABLE temp_table
ALTER TABLE temp_table ADD FULLTEXT INDEX (foo,bar,baz)
INSERT INTO temp_table SELECT * FROM regular_table
nhưng chỉ mục sẽ được cập nhật lại trên mỗi lần chèn.
Có lẽ cách hiệu quả nhất sẽ là tạo bảng tạm thời, chèn tất cả, xây dựng chỉ mục sau đó:
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
Một lần nữa, bạn sẽ phải đợi chỉ mục được tạo, ngoại trừ nó sẽ xảy ra trong một đoạn, với câu lệnh ALTER cuối cùng.