![]() |
1
5
有两个选项:您可以将BLOB列放在自己的表空间中,并具有自己的存储特性;您可以将BLOB存储在自己的表中,通过ID列链接到另一个表。在这两种情况下,您都可以将列定义为bfile,这意味着实际文件是从数据库外部存储在目录中的。可能存在的问题是bfile lob不参与事务,并且不能与数据库的其余部分一起恢复。 这在第23页开始的Oracle10GR2 SQL参考第2章中都有讨论。 |
![]() |
2
1
我想这取决于你认为的巨大。 它确实依赖于用例。如果只很少访问文档,那么将其放入数据库就可以了(具有获得“免费”备份的优势,例如,使用数据库)。 如果这些文件将被一次又一次地攻击,那么您最好将它们直接放在磁盘上并只存储位置,或者甚至(如果它的带宽真的很高)查找类似 MogileFS 没有人能给你一个肯定或否定的答案。 |
![]() |
3
1
您可以使用普通的LOB列类型,并为该字段设置存储参数,使其位于单独的表空间上。在可以处理大量数据的地方创建表空间,这样可以将影响最小化。 要认真对待磁盘使用情况,可以通过标记表空间来额外压缩表空间。沿着这条线的东西: 创建表空间 Bialayl DATA1 数据文件 一些圣保罗的位置 默认压缩存储(…) |
![]() |
4
1
根据我的经验,包含附件文件名的简单varchar2字段是一个更好更简单的解决方案。文件系统大小比数据库大小更易于管理。 |
![]() |
5
1
数据必须存在于某个地方,无论它是数据库内部的,还是您只是存储到(服务器)可访问文件路径的链接,您仍然需要占用空间。 我过去只使用简单的LOB字段,它似乎工作得很好。如果您将数据保存在数据库中,那么至少您可以将备份的麻烦保持在较低的水平—您可能有很多数据需要备份,但是当您恢复数据时,这些数据都会存在。如果不小心备份什么,将二进制文件拆分意味着可能会破坏数据库或丢失数据。 |
![]() |
6
1
仅存储链接或可用于构建链接的ID的一个原因是,通常用于Oracle数据库的存储相当昂贵。如果你有很多大文件,把它们放在一个更便宜的磁盘阵列上通常更划算。 |