所以我有这个网站在asp.net,它允许用户上传和保存他们的重要文件到服务器,这对用户的需求(当用户登录和查看他的文件和点击他的一个文件)被允许下载到客户端计算机。
此外,允许保存的文件大小小于25Mb(至少现在!),文件只能是任何类型,包括但不限于.txt,.rtf,.pdf,.doc,.docx ,.jpg,.png等
因此,问题是我应该在哪里存储考虑到最佳性能的文件,我是否应该将文件存储在SQL Server中(使用SQL Server 2008,以便您知道,Visual Studio 2008 sp1)列(可能是BLOB格式?)还是应该将它们存储在服务器的HDD中。
此外,考虑到最大规模,比如说,即使10个用户上传了20Mb的文件,这也会占用200Mb的存储空间!如果有人能够知道,如果这些文件存储在数据库中,这会导致数据库大小增加多少?
我的意思是在数据库中相对于文件系统中的存储空间需求增加多少,而且性能会更好?存储文件在SQL vs存储在web服务器的硬盘
1
A
回答
2
看到这个微软文件:To Blob or not
恕我直言 - 有很多的优点和缺点,在这两种方法 - 存储文件在数据库并将它们存储在FS的SQL Server 2008有
但是另一种选择 - 将文件作为数据库的一部分存储在FileSYstem中,请参见FILESTREAM overview
0
就我个人而言,我总是使用磁盘存储来存储文件数据。数据库最终将文件数据存储在磁盘上,只是增加了一层成本和抽象。抽象总是增加缩放和性能障碍。例如,它更容易从本地HDD上的文件转换为CDN中的文件而不是数据库,并且在需要时可以更容易地添加更多磁盘空间,而无需扩展数据库的大小。
我已经建立了类似的系统,与您在过去所描述的系统相似,从经验值得花一些时间考虑您的商店文件的抽象方式,以便它可以被换出或更新。
0
根据Oleg提供的msdn文档和其他一些基准/意见可用于使用db的较小文件(大约0.25MB或更小)可能会快得多,但是我只能保留该解决方案以实现极端良好接地的目的。对于大多数情况下,我会说在硬盘上存储文件是更合适,灵活和...自然。
但是,我不应该将分析仅限于性能。考虑到不同的方面,如:
- 安全
- 备份
- 可扩展性
使用其他数据源时,这通常需要额外的注意(如复制)。
相关问题
- 1. 服务器在哪里存储文件?
- 2. 在Web服务器上存储私钥
- 3. 在SQL服务器中存储图像
- 4. 使用硬盘存储器的MATLAB
- 5. 存储库vs域服务
- 6. php文件存储在Web服务器上吗?
- 7. 在线编辑存储在web服务器上的office文档
- 8. SQL CLR存储过程和Web服务
- 9. 的Web SQL存储在iPhone
- 10. 在SQL服务器表中存储证书文件
- 11. 在哪里存储Web服务异常?
- 12. 将变量存储到Web服务器
- 13. 硬盘上的GZIP HTML文件 - 不在Web服务器上
- 14. 成本在数据存储存储文件VS Blob存储区的
- 15. 存储在浏览器会话存储器VS内存变量
- 16. 转储PE从存储器文件保存到磁盘
- 17. SQL服务器 - 从存储过程
- 18. 将indexeddb存储到SQL服务器
- 19. 存储过程..使用SQL服务器
- 20. SQL服务器:递归存储过程
- 21. 存储过程SQL服务器
- 22. SQL服务器存储过程
- 23. SQL服务器 - 存储过程
- 24. 如何在Web App服务中使用“Azure文件存储”?
- 25. 将图像存储在数据库vs文件服务器上与服务器上的Zip文件
- 26. SQL服务器NUMERIC /小数精度VS存储
- 27. mysql服务器在哪里存储存储过程代码?
- 28. 在磁盘或MongoDB上存储文件
- 29. SQLiteDatabase vs文件存储
- 30. 服务器文件更改后刷新服务器存储库
我个人喜欢在文件系统上存储文件。 – 2012-02-02 11:33:09