我们正在创建一个需要存储1张million+图片的ASP.Net MVC站点,所有图片的大小都在2k-5k左右。从之前的研究来看,文件服务器看起来可能比数据库更好(如果不是这样的话,请随意评论)。
在存储这么多文件时,有什么需要特别考虑的吗?如果一个文件夹中有这么多文件,Windows能否快速找到照片有什么问题吗?是否需要创建分段的目录结构,例如按文件名进行划分?如果该解决方案能够扩展到至少1000万张图片,以满足未来的潜在扩展需求,那就太好了。
发布于 2010-04-02 16:09:50
4Kb是NTFS的默认群集大小。您可以根据通常的图片大小调整此设置。http://support.microsoft.com/kb/314878
我将构建一个带有子目录的树,以便能够从一个FS移动到另一个FS:How many files can I put in a directory?,并避免一些问题:http://www.frank4dd.com/howto/various/maxfiles-per-dir.htm
您还可以将包含相关图片的档案加载到只打开一个文件的情况下。这些归档文件可能会被压缩,瓶颈是I/O,如果是CPU,则为解压缩。
数据库更容易维护,但速度更慢……所以就看你的了!
发布于 2010-04-02 18:56:02
有关目录结构的一些讨论,请参阅this Server Fault question。
发布于 2010-04-02 19:05:52
问题不是文件系统不能在一个目录中存储这么多文件,而是如果你想使用windows资源管理器访问那个目录,它将永远需要花费很长时间,所以如果你需要手动访问那个文件夹,你应该对它进行分段,例如每个目录包含2-3个名称的首字母/数字,甚至更深层次的结构。
如果您可以将其划分为1k个文件夹,每个文件夹包含1k个文件,那么这样做的代码将非常简单。
https://stackoverflow.com/questions/2567597
复制相似问题