Tôi có khoảng 84 triệu hàng. Trong số chúng cần được chuyển đến một cơ sở dữ liệu riêng biệt trên cùng một máy chủ, sau đó tôi xóa để xóa khoảng 60 triệu hàng khỏi cơ sở dữ liệu nguồn.
84 triệu hàng đều nằm trong cùng một bảng. Chỉ riêng bảng đó đã chiếm 90% toàn bộ cơ sở dữ liệu.
Vậy ... Nguồn: 84 triệu hàng -> 24 triệu hàng Đích: 0 hàng -> 84 triệu hàng
Nguồn đang chạy chế độ phục hồi đầy đủ, đích sẽ chạy đơn giản.
Tôi đang tự hỏi điều gì sẽ là cách hiệu quả nhất để làm điều này?
Kế hoạch A:
1) CHỌN VÀO đích CHỌN * TỪ nguồn
2) Nguồn TRUNCATE
3) CHỌN VÀO nguồn CHỌN * TỪ điểm đến WHERE keep_condition = 1
Kế hoạch B:
1) Khôi phục bản sao lưu cơ sở dữ liệu nguồn làm cơ sở dữ liệu đích
2) Bỏ mọi bảng trừ bảng cần thiết trên cơ sở dữ liệu đích
3) Nguồn TRUNCATE
4) CHỌN VÀO nguồn CHỌN * TỪ đích đến WHERE keep_condition = 1
Kế hoạch C:
1) CHỌN VÀO đích CHỌN * TỪ nguồn
2) XÓA nguồn WHERE keep_condition = 0
hay cái gì khác?
Cảm ơn