1

大小:~5mb

磁盘大小:~3gb

我们使用 C# 并随着数据的变化不断地保存数据,所有文件数据都必须在任何给定时间都可以访问。基本上,如果某些东西改变了该数据的文件,则必须保存。这就是为什么有这么多文件包含这么多数据的原因。数据也得到了很大的处理,因此将所有数据聚集在一起不是一个选择,因为一个小的更改会导致无缘无故地保存大量数据。这些文件已经包含了足够多的内容,以至于保存一个对于仅进行很小的更改就几乎是多余的。

当然,有一种方法可以绕过文件大小的这种荒谬的扩展,并且仍然保留我们已经实现的可访问性和节省效率。我们需要一种将这些文件打包成 windows 认为是单个文件的方法,但这样我们就不必在发生更改时重写整个文件。

我知道拥有数千个小文件是很奇怪的,但对于我们的目的来说,它极大地提高了性能。如果可以避免的话,我们只是不想为了另一种资源而牺牲一种资源。

注意:这些文件有 RLE 二进制数据,它们不是文本文件。

清晰度更新:5mb->3gb = 250mb(50x 簇)-> 150gb = 问题!

4

1 回答 1

6

数据库完全满足您的需求:您可以存储任意数量的小行/blob,并且它们将被有效地存储。文件系统通常每个文件至少需要一个磁盘集群,这可能就是您的大小扩展如此之大的原因。数据库不这样做。您还可以要求数据库自行压缩。

有可用的嵌入式和独立数据库。

于 2013-03-03T16:22:12.723 回答