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

ALTER TABLE ADD COLUMN mất nhiều thời gian

ALTER TABLE của bạn câu lệnh ngụ ý mysql sẽ phải viết lại mọi hàng của bảng bao gồm cả cột mới. Vì bạn có hơn 2 triệu hàng, tôi chắc chắn sẽ mất một khoảng thời gian đáng kể, trong thời gian đó máy chủ của bạn có thể chủ yếu bị ràng buộc IO. Bạn thường thấy nó hoạt động hiệu quả hơn khi thực hiện những điều sau:

CREATE TABLE main_table_new LIKE main_table;
ALTER TABLE main_table_new ADD COLUMN location VARCHAR(256);
INSERT INTO main_table_new SELECT *, NULL FROM main_table;
RENAME TABLE main_table TO main_table_old, main_table_new TO main_table;
DROP TABLE main_table_old;

Bằng cách này, bạn thêm cột trên bảng trống và về cơ bản ghi dữ liệu vào bảng mới đó mà bạn chắc chắn rằng không ai khác sẽ nhìn vào mà không cần khóa nhiều tài nguyên.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 500 Lỗi máy chủ nội bộ?

  2. mysql - Tự động cập nhật các lần xuất hiện trong một bảng khác

  3. Liên quan đến PHP PDO:Cập nhật câu lệnh SQL không cập nhật nội dung của cơ sở dữ liệu

  4. A. * không nằm trong GROUP BY với kết nối trái trên trình tạo truy vấn laravel

  5. Hiển thị tên bảng và tên trường trong URL yêu cầu