将文件存储在文件系统上
我有一个将图像存储在数据库中的应用程序。 现在我已经了解到,由于性能的原因,这不是最好的方法。将文件存储在文件系统上
我已经开始抽取所有的“斑点”从数据库中,并加入他们(通过虚拟文件夹)到数据文件夹
的问题是,我有媒体链接存储8000个斑点,如果我把它们在像这样的文件夹“data/< blobid>/< blobname.extension>”这个文件夹将包含许多可以管理的文件夹。
我想知道如何将文件存储为最佳? 将它们在创建日期中分组,例如“data/< year/< month>/< day>/< blobid>/< name>”。 我还必须补充说我们的文件存储在数据库的树中。 我想知道是否应该将该树结构映射到文件系统,唯一的问题是您可以移动分支。这意味着我必须移动文件系统上的分支。
任何帮助,欢迎。
Grtz, 中号
您正在使用什么版本的SQL Server?因为如果您使用的是2008年,则可以使用FILESTREAM datatype来存储图像。这与将它们存储在文件存储中一样有效,但没有任何相关的麻烦。见Getting Traction with SQL Server 2008 Filestream。
您是否需要将文件存储在相关的树结构中?如果没有,你可以命名文件/YOURFOLDER/blobid_blobname.extension。通过这种方式,上传文件夹纯粹作为数据存储库而不是模拟数据结构。
一个简单的策略是根据第一个[几个]数字进行分组。例如:
1/
2/
123.blob
129.blob
5/
151.blob
2/
0/
208.blob
这样,你就知道在一个目录中永远不会有超过10个子目录。您当然可以使用更多或更少的级别(目录)和/或每个级别更多的数字。
一个更复杂的,动态的系统可以根据需要创建子级别:如果斑点的某个目录数超过预设的最大值,创建另一个10个子目录和文件移动
thx,我会毫不犹豫地研究这一点。 – user29964 2009-11-09 14:30:42
+1 - 我不知道这种类型,但它听起来像我也应该使用它。谢谢! – 2009-11-09 14:43:10