所以我有这个要求,说应用程序必须让用户每月上传和下载大约6000个文件(主要是pdf,doc,xls).
我正在考虑最佳解决方案.问题是我是否会在我的数据库中使用BLOb,或者使用简单的文件层次结构来编写/读取这些文件.
应用程序架构基于Java 1.6,Spring 3.1和DOJO,Informix 10.X.
所以我只是根据你的经验建议我.
解决方法
如果数据库中有与这些文件相关的其他数据,则将文件存储到文件系统会使其更复杂:
>备份应单独完成.
>事务必须单独实现(尽可能用于文件系统操作).
>数据库和文件系统结构之间的完整性检查不是开箱即用的.
>无级联:删除用户后删除用户图片.
>首先,您必须从数据库中查询文件路径,然后从文件系统中选择一个.
基于文件系统的解决方案的优点是,有时能够直接访问文件是很方便的,例如将图像的一部分复制到其他地方.当然,存储二进制数据也可以大大改变数据库的大小.但无论如何,两种解决方案都需要更多磁盘存储.
当然,所有这些都可以提供比当前可用的更多的DB资源.一般来说,性能可能会受到很大影响,特别是如果决定是在本地文件系统和远程数据库之间.在您的情况下(每月6000个文件)原始性能不会有问题,但延迟可以.