Tôi có một đĩa ngoài với một tỷ tệp. Nếu tôi gắn đĩa ngoài vào máy tính A, chương trình của tôi sẽ quét tất cả đường dẫn của tệp và lưu đường dẫn của tệp trong bảng cơ sở dữ liệu. Sau đó, khi tôi đẩy đĩa ngoài, những dữ liệu đó sẽ vẫn còn trong bảng. Vấn đề là, nếu một số tập tin bị xóa trong máy tính B, và tôi gắn nó vào máy tính Một lần nữa, tôi phải đồng bộ hóa bảng cơ sở dữ liệu trong máy tính A. Tuy nhiên, tôi không muốn quét tất cả các tệp một lần nữa vì nó mất một thời gian rất nhiều và lãng phí một bộ nhớ rất nhiều. Có cách nào để cập nhật bảng cơ sở dữ liệu mà không quét tất cả các tệp trong khi giảm thiểu bộ nhớ được sử dụng không?Xử lý một số lượng lớn các tệp
Bên cạnh đó, trong trường hợp của tôi, giới hạn bộ nhớ quan trọng hơn thời gian. Điều đó có nghĩa là tôi muốn tiết kiệm nhiều bộ nhớ hơn là tiết kiệm nhiều thời gian hơn.
Tôi nghĩ rằng tôi có thể cắt các tệp thành nhiều phần và sử dụng một số chức năng cụ thể (có thể là SHA1?) Để kiểm tra xem các tệp trong phần này có bị xóa hay không. Tuy nhiên, tôi không thể tìm ra cách để cắt các tập tin vào các phần. Bất cứ ai có thể giúp tôi hoặc cho tôi những ý tưởng tốt hơn?
Xóa như sau: Xóa dựa trên hệ thống mà bạn không kiểm soát được? hoặc Xóa được kích hoạt bởi một số ứng dụng mà bạn có thể làm điều gì đó? – Krrose27
Tại sao quá trình quét sử dụng nhiều bộ nhớ? Về cơ bản bạn chỉ liệt kê các tệp trong một thư mục cùng một lúc, đúng không? – Joni
Vâng, tuy nhiên, tôi không thể kiểm soát số lượng tệp trong thư mục trên. Một thư mục có thể có 1 tỷ tệp. Bên cạnh đó, nếu tôi chèn một dữ liệu khi tôi quét một tập tin ngay lập tức, nó sẽ tiết kiệm rất nhiều bộ nhớ nhưng thực sự tốn thời gian vì các vấn đề I/O. Nếu tôi sử dụng chèn số lượng lớn, nó sẽ hiệu quả hơn. – s011208