Tại nơi làm việc, chúng tôi thực hiện một loạt các cơ sở dữ liệu mysql hàng đêm. Từ ngày này qua ngày khác, tôi sẽ đánh giá cao rằng gần 90-95% dữ liệu được nhân đôi, tăng dần theo thời gian. (Heck tại thời điểm này một số có thể là 99%)
Các bãi chứa này là nơi một dòng là một câu lệnh mysql INSERT duy nhất, do đó, sự khác biệt duy nhất là toàn bộ các dòng và thứ tự chúng nằm trong tệp. Nếu tôi sắp xếp chúng, sự khác biệt thực tế từ tệp này sang tệp khác sẽ rất nhỏ.
Tôi đã tìm kiếm và tôi không tìm thấy cách nào để sắp xếp đầu ra trên bãi chứa. Tôi có thể dẫn nó qua sort
lệnh, mặc dù. Sau đó sẽ là những khối dài, dài giống hệt nhau.
Vì vậy, tôi đang cố gắng tìm cách lưu trữ các khác biệt. Tôi có thể bắt đầu với một bãi rác chính, và khác với điều đó mỗi đêm. Nhưng khác biệt sẽ lớn hơn mỗi đêm. Hoặc, tôi có thể tạo ra các khác biệt cán, mà riêng lẻ sẽ rất nhỏ, nhưng có vẻ như sẽ mất nhiều thời gian hơn để tính toán, nếu tôi phải kết hợp một khác biệt tổng thể của toàn bộ mỗi đêm.
Điều này có khả thi không? Với công cụ gì?
Chỉnh sửa Tôi không hỏi làm thế nào để sao lưu mysql. Hãy quên mysql ngay bây giờ. Đó là một cá trích đỏ. Những gì tôi muốn biết là làm thế nào để tạo ra một loạt các khác biệt từ một loạt các tập tin. Mỗi đêm, chúng tôi nhận được một tệp (đó là tệp mysqldump ) tương tự 99% với tệp trước đó. Vâng, chúng tôi gzip tất cả. Nhưng nó là dư thừa để có tất cả sự dư thừa đó ở nơi đầu tiên. Tất cả những gì tôi thực sự cần là sự khác biệt từ đêm hôm trước ... chỉ khác 1% so với đêm trước ... và cứ thế. Vì vậy, những gì tôi đang theo là làm thế nào để tạo ra một loạt các khác biệt để tôi chỉ cần lưu trữ 1% đó mỗi đêm.