繁体   English   中英

在文件系统上存储文件

[英]Storing files on the filesystem

我有一个将图像存储在数据库中的应用程序。 现在,我了解到由于性能的原因,这并不是最好的方法。

我已经开始从数据库中提取所有“斑点”并将它们(通过虚拟文件夹)添加到数据文件夹中

问题是我已经存储了8000个Blob,并且如果将它们放在这样的文件夹中,例如“ data / <blobid> / <blobname.extension>”,则该文件夹将包含许多易于管理的文件夹。

我想知道如何最好地存储文件? 将它们按创建日期分组,例如“数据/ <年> / <月> / <日> / <blobid> / <名称>”。 我还必须补充一点,我们的文件存储在数据库的树中。 我想知道是否应该将该树结构映射到文件系统,唯一的问题是可以移动分支。 那将意味着我必须移动文件系统上的分支。

欢迎任何帮助。

格茨

您正在使用哪个版本的SQL Server? 因为如果使用的是2008,则可以使用FILESTREAM数据类型来存储图像。 这与将它们存储在文件存储中一样高效,但是没有任何相关的麻烦。 请参阅使用SQL Server 2008 Filestream进行牵引

一种简单的策略是根据前几个数字进行分组。 例如:

1/
    2/
        123.blob
        129.blob
    5/
        151.blob
2/
    0/
        208.blob

这样,您就知道一个目录中最多不会有10个子目录。 您当然可以使用(目录)更多或更少的级别和/或每个级别使用更多的数字。

一个更复杂的动态系统可以根据需要创建子级别:如果某个目录中的Blob数量超过预设的最大值,请创建另外10个子目录并将文件移入。

大多数用于BLOB数据的文件系统都会设置许多子目录。 例如,如果您具有ID 1-10000,则可以具有:

00/
    00/
    01/
    02/
        00020.blob
        00021.blob
        ...
    ...
01/
02/
03/
...

我要回答的另一个问题是:为什么将它们作为BLOB进行管理这么糟糕?

您是否需要将文件存储在相关的树形结构中? 如果不是,则可以将文件命名为/YOURFOLDER/blobid_blobname.extension。 这样,上载文件夹纯粹充当数据的存储库,而不是模仿数据结构。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM