我正在建立一个Asp.net网站,用户可以将文件上传到他们的用户帐户,然后在他们登录时下载。这些文件通常少于5MB,用户只能下载他们的文件已上传(即无法下载其他人的文件)。大约有10万用户,每个用户可能上传大约2或3个文件。实时网站负载均衡
我认为将这些文件作为BLOB存储在中央数据库(Sql Server)中会很好,因为......
由于站点负载均衡,每个节点都可以从中央DB访问该文件。无需担心共享文件夹来存储文件
我可以更轻松地确保用户只下载自己的文件。
自动备份数据库包括文件BLOBS
我唯一看到的缺点就是性能,但这有多糟糕?
如果我要将这些文件存储在文件系统中,将它们存储在一个文件夹中会有任何问题吗?
最佳方法是什么?
答案 0 :(得分:0)
如果您想要快速,请将数据存储到文件系统。在这种情况下,您不需要从sql server读取数据量。在这种情况下,您可以做两件事:
第一种方法:将所有文件存储在一个文件夹中(NTFS限制:4,294,967,295,FAT限制:268,435,437)
第二种方法:为每个用户(userid)创建一个单独的子文件夹。我希望这比第一种方法更好。
对于较新版本的SQL Server,您还可以使用FILESTREAM。
知道
也很有趣