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

MySQL sao chép hiệu quả tất cả các bản ghi từ bảng này sang bảng khác

Chỉ có một thứ bạn đang thiếu. Đặc biệt, nếu bạn đang sử dụng InnoDB, bạn có muốn thêm mệnh đề ORDER BY trong câu lệnh SELECT của mình một cách rõ ràng để đảm bảo bạn đang chèn các hàng theo thứ tự khóa chính (chỉ mục được phân cụm) không:

INSERT INTO product_backup SELECT * FROM product ORDER BY product_id

Cân nhắc loại bỏ các chỉ mục phụ trên bảng sao lưu nếu chúng không cần thiết. Điều này cũng sẽ tiết kiệm một số tải trên máy chủ.

Cuối cùng, nếu bạn đang sử dụng InnoDB, hãy giảm số lượng khóa hàng được yêu cầu và chỉ khóa rõ ràng cả hai bảng:

LOCK TABLES product_backup WRITE;
LOCK TABLES product READ;
INSERT INTO product_backup SELECT * FROM product ORDER BY product_id;
UNLOCK TABLES;

Việc khóa nội dung có thể sẽ không tạo ra sự khác biệt lớn, vì khóa hàng rất nhanh (mặc dù không nhanh như khóa bảng), nhưng vì bạn đã yêu cầu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Làm thế nào để loại bỏ nhiều bảng bằng cách sử dụng một truy vấn?

  2. Cách đặt múi giờ cơ sở dữ liệu trong application.ini

  3. Cách tăng tự động trong một tập hợp con của bảng MYSQL

  4. Phát hiện xem một ngày có nằm trong Giờ tiết kiệm ánh sáng ban ngày trong MySql hay không

  5. Truy vấn bảng chéo động MySQL:Chọn bản ghi con làm cột bổ sung