【发布时间】:2021-07-22 20:38:30
【问题描述】:
我正在尝试找到一种解决方案,将二进制文件存储在磁盘上的最小尺寸中。我正在从 30 字节的数据库中读取车辆 VIN 和车牌号,当我将其放入 txt 文件并保存时,它的大小为 30B,但它在磁盘上的大小为 4KB,这意味着如果我保存 100000 个文件或更多,它会占用存储空间。
所以我的问题是,如何将这 30B 写入单个二进制文件,使其在磁盘上的最小大小,以及磁盘上 30B 的最小可能大小是多少,包括文件名和权限等其他信息?
注意:我不想将这些文本保存在数据库中,我只想制作单独的二进制文件。
【问题讨论】:
-
最大的问题是 - 我们在谈论什么文件系统?有了答案,阅读上述文件系统,你就会得到答案。
-
这真的取决于你使用的文件系统。
-
正如其他 cmets 所说,这非常依赖于文件系统。现在 400MB 什么都不是,何必担心呢?
-
"我不想将这些文本保存在数据库中,我只想制作单独的二进制文件。" 你别无选择。 “二进制文件”是数据库中的一个条目。文件系统是数据库。选择一个满足您需求的数据库还是一个不满足您需求的数据库只是一个问题。
-
@Ross,这是效率问题。将 400MB 的数据保存在 30B 的数据包中,每个数据包占用 4K,这将占用超过 50TB 的硬盘空间!
标签: c++