3 回答
TA贡献1765条经验 获得超5个赞
如果它不必在多个服务器上可用,最好将它们放在文件系统中。 如果它必须在多个服务器上可用,而且系统中实际上有某种负载,那么您将需要某种分布式存储。
TA贡献1789条经验 获得超8个赞
交易。当您保存BLOB时,您可以像任何其他DB数据一样提交它。这意味着您可以将BLOB与任何关联元数据一起提交,并确保两者是同步的。如果磁盘空间用完了呢?不承诺。文件没有完全上传?不承诺。愚蠢的应用错误?不承诺。如果保持映像及其相关的元数据相互一致对您的应用程序很重要,那么DB可以提供的事务可能是一件好事。 一个要管理的系统。需要备份元数据和BLOB吗?备份数据库。需要复制吗?复制数据库。需要从部分系统故障中恢复吗?重新加载DB并向前滚动日志。DBS给一般数据带来的所有优点(卷映射、存储控制、备份、复制、恢复等)适用于你的斑点。更一致,更容易管理。 保安。数据库具有非常细粒度的安全特性,可以利用这些特性。模式、用户角色,甚至是诸如“只读视图”之类的东西,以提供对数据子集的安全访问。所有这些特性都适用于包含气泡的表。 集中管理与#2相关,但基本上DBA(似乎没有足够的能力)可以管理一件事情:数据库。现代数据库(特别是大型数据库)可以很好地工作,可以跨几台机器安装大型数据库。单一的管理来源简化了程序,简化了知识转移。 大多数现代数据库都处理得很好。有了数据层中BLOB的一级支持,就可以轻松地将BLOB从DB流到客户端。虽然有些操作可以同时“吸”整个BLOB,但如果您不需要该工具,那么就不要使用它。研究DB的SQL接口并利用它的特性。没有理由把它们当作“大字符串”,它们被一刀切地处理,然后把你的气泡变成大的、记忆的、吞食的、高速缓存的炸弹。 就像您可以为图像设置专用文件服务器一样,您也可以在数据库中设置专用的BLOB服务器。为它们提供专用磁盘卷、专用模式、专用缓存等。DB中的所有数据都不是相同的,行为也不一样,没有理由对其进行完全相同的配置。良好的数据库具有良好的控制水平。
添加回答
举报