我有在数据库中存储的图像的应用程序。 现在我已经了解到,这是不这样做,因为这样的性能的最佳方式。

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

问题是,我有媒体链接存储8000个斑点,如果我把它们夹在这样的“数据/ / ”将这个文件夹包含很多文件夹是可控的。

我想知道你是如何存储你的文件的最好? 他们创建日期喜欢这组 “数据/ <年> / <月> / <日> / / <名>”。 我还必须补充一点,我们的文件存储在数据库中的一棵树。 我想知道我是否应该是treestructure映射到文件系统,唯一的问题还有就是你可以移动的分支。这将意味着我必须移动分支上的文件系统。

任何帮助是受欢迎的。

Grtz, 中号

有帮助吗?

解决方案

什么版本的SQL Server您使用的?因为如果你使用的是2008年,你可以使用 FILESTREAM数据类型存储图片。这仅仅是因为它们存储在文件存储,但没有任何相关的麻烦一样高效。请参见获取牵引与SQL Server 2008文件流

其他提示

一个简单的策略是根据第一[几个]位(多个)分组。 E.g:

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

这样,你知道你永远不会有一个目录中10多个子目录。当然,你可以使用更多或更少的水平(目录),和/或多个数字每级。

一个更复杂的,动态的系统可以按需创建子级别:如果斑点在特定目录中的数超过预设最大值时,创建另一个10个子目录和在移动文件

大多数文件系统对BLOB数据将设立多个子目录。举例来说,如果你的ID为1-10000,你可以有:

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

在其他问题我已经为你回来:为什么会这样对你不好给他们管理为BLOB

你需要将文件存储在相应的树结构?如果没有,你可以将文件命名为/YOURFOLDER/blobid_blobname.extension。这种方式上载的文件夹作为纯粹的数据的存储库,而不是模仿的数据结构。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top