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.