[英]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.