Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển chỉ mục sang bảng tạm thời từ bảng thông thường?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CodeIgniter:Cách sử dụng mệnh đề WHERE và mệnh đề HOẶC

  2. So sánh các hàng trong cùng một bảng trong mysql

  3. Truy vấn chọn chuỗi Mysql

  4. Kết nối với db MySQL từ xa từ bộ chứa docker

  5. MySQL Alter Table Add Field Trước hoặc Sau một trường đã có