2010-09-13 68 views
1

我开发管理数百个罐子(保存和加载上飞) 来管理他们,我有两个选择J2EE应用程序:将文件另存为lob或作为操作系统文件?

  1. 创建一个包含所有的罐子服务器 上的目录
  2. 保存罐子作为LOB在Oracle 10g数据库

能不能帮我选择最好的解决办法是什么?是每个选项的好处是什么?

感谢您的帮助。

+0

首先有几个问题:1.什么是jar文件的平均大小? 2.您多久创建/修改/使用它们? 3.你如何访问它们? – 2010-09-13 08:01:20

+0

4.您是否期​​望可以有应用程序服务器集群而不是一个? – Thilo 2010-09-13 08:08:30

+0

1 - 我认为文件的平均大小不会超过50kb 2 - 罐子我不创建它们,它们没有修改,但它们从GUI加载并保存以供将来使用... 要使用该罐认为我会生成ant文件并将jar包括在classpath中。 – user405458 2010-09-13 08:34:47

回答

1

如果有很多罐子可以使用Maven像文件组织按文件夹划分。将文件存储在针对大文件I/O优化的文件系统中,并将其路径/ URL保存在您选择的数据库中总是更好。

+1

我也将支持将文件保存到文件系统并将其路径/ URL保存在数据库中。在文件系统上保存文件的主要优点是,与数据库相比,集群,复制等非常便宜且易于在文件系统上执行,您还可以利用CDN(内容分发网络)的优势如果需要,可以高速分发这些文件。 – 2010-09-13 08:34:55

+1

文件系统用于文件,数据库用于记录,+1用于将文件存储在OS文件系统中,并将引用放入数据库中。如果您需要从多台机器访问文件,您还可以考虑使用Amazon S3等解决方案。 – 2010-10-20 20:21:11

0

这些文件的安全性是什么?

数据库中的对象可能更容易保护并审核对数据库的访问。

另外,看看SecureFiles/DBFS and deduplication 基本上,如果你存储了大量的同一个文件的副本,数据库就会意识到并且只有一个物理副本。相当于符号链接。为SecureFiles的

写入性能better than a regular filesystem

随着DBFS你也可以装入数据库作为一个文件系统。这可以使在“常规”文件系统存储和数据库存储之间切换变得非常容易。

+0

不幸的是,这个解决方案是oracle 11g中的一个特性,我有oracle 10g – user405458 2010-09-14 08:26:49

0

涉及数据库在几乎所有情况下,即使数据库被聚集,LOB的速度也会慢得多。开发目录和文件命名约定并不会那么困难。如果你愿意,你可以使用DB来帮助跟踪文件,这样你就不必搜索文件系统本身。