3 回答
TA贡献1735条经验 获得超5个赞
当您的数据库越来越大时,备份将变得越来越困难。还原具有超过100 GB数据的表的备份并不能使您满意。
得到的另一件事是,所有表管理功能随着数据集的增长而越来越慢。
但这可以通过使数据表仅包含2个字段来解决:ID和BLOB。
(通过主键)检索数据很可能只会在您备份数据集遇到困难之后很长时间才成为问题。
TA贡献1777条经验 获得超3个赞
我经常听到使用blob的主要缺点是,超过一定大小后,文件系统在存储和检索大文件方面效率更高。听起来您已经按照需求列表考虑了这一点。
这里有一个很好的参考(PDF),涵盖了Blob的优缺点。
TA贡献1853条经验 获得超6个赞
根据我的经验,一些问题是:
速度与在文件系统上拥有文件的速度。
缓存。IMO Web服务器将更好地缓存静态内容。DB也会做得很好,但是如果DB还处理其他各种查询,请不要期望那些大型文档会长时间保持缓存。实际上,您必须两次传输文件。一次是从DB到Web服务器,然后是Web服务器到客户端。
内存限制。在我的上一份工作中,数据库中有40MB的PDF,并在日志文件中不断获取Java OutOfMemoryErrors。最终,我们认识到整个80MB PDF不仅被读入了堆,而且由于休眠ORM中的设置而被读入了TWICE(如果一个对象是可变的,它会在内存中进行编辑)。将PDF流式传输回用户后,便清理了堆,但一次仅从流中提取80MB只是用于流式传输文档,这是一个很大的打击。了解您的代码以及如何使用内存!
您的Web服务器应该能够处理您的大多数安全问题,但是如果文档很小并且DB尚未承受很大的负载,那么将它们放入DB中并没有太大的问题。
添加回答
举报