Dra*_*orn 2 checksum duplicates
例如,您有一个应用程序来处理由不同客户端发送的文件。客户端每天发送大量文件,您将这些文件的内容加载到您的系统中。这些文件具有相同的格式。给你的唯一限制是你不能运行同一个文件两次。
为了检查您是否运行了特定文件,需要创建该文件的校验和并将其存储在另一个文件中。因此,当您获得一个新文件时,您可以创建该文件的校验和,并与您运行和存储的其他文件的校验和进行比较。
现在,包含您迄今为止运行的所有文件的所有校验和的文件变得非常非常庞大。搜索和比较花费了太多时间。
注意:该应用程序使用平面文件作为其数据库。请不要建议使用 rdbms 之类的。目前根本不可能。
您认为还有其他方法可以检查重复文件吗?
将它们保存在不同的地方:有一个目录供客户端上传文件进行处理,有另一个用于存储这些文件的目录。
或者您是否处于客户端可以多次上传同一个文件的情况?如果是这种情况,那么您几乎每次都必须进行全面比较。
和校验和,虽然它们让你确信两个文件是不同的(并且,取决于校验和,非常高的置信度),但不能 100% 保证。您根本无法将可能的多字节流的几乎无限宇宙减少到 32 字节校验和,并保证唯一性。
另外:考虑分层目录结构。例如,foobar.txt
将使用路径存储文件/f/fo/foobar.txt
。这将最大限度地减少扫描特定文件的目录(线性操作)的成本。
如果您保留校验和,这可用于您的分层:(/1/21/321/myfile.txt
使用最低有效数字作为结构;在这种情况下,校验和可能是 87654321)。