2011-06-06 92 views
0

将RDBMS中的整个文件存储在文件系统中的文件中并引用RDBMS中的文件路径有什么好处吗?RDBMS vs文件系统用于文件存储

哪种方法应该更快?我什么时候选择一个呢?使用哪种文件系统有什么关系? (说ext3)

我不指望文件根本改变。这些文件可能是json或xml,也可能是pdf(不太可能)。另外,可能不需要经常引用这些文件。它们仅用于存档。

谢谢。

+0

感谢您的回复。我深信双方的论点。看起来这将是一个权衡决定。 – 2011-06-07 16:47:18

回答

2

鉴于预计文件不会改变,保留DBMS中的文件的价值有限。将文件保存在DBMS中的主要优点是数据库管理系统知道如何管理事务,但如果文件不会改变,那么这种优势就变得微不足道了。

在DBMS中存储文件的另一个优点是数据库备份将包含文件;在单独存储文件的情况下,您必须备份单独的文件夹以及DBMS本身以保证所有数据的安全。

在DBMS中存储文件的另一个优点是数据库可以对访问文件实施更细微的控制。

将文件存储在文件系统中的主要优点是可以很容易地查看您拥有的文件。

的第二个好处是,你可以备份或操作文件的DBMS之外 - 尽管这也是从一些观点是不利的。

如果文件存储在DBMS中的斑点中,则普通的SQL客户端软件可以通过普通的SQL连接检索内容。如果SQL客户端软件与DBMS和文件不在同一台计算机上,那么您不必担心客户端如何获取文件数据。

将文件从数据库管理系统中分离出来的另一个优点是文件可以存储在DBMS机器之外。另一方面,这使得将文件加载到“DBMS”中变得复杂。


总体而言,考虑到上述问题,在'DBMS'文件中使用'似乎有一些优势。另一方面,很多人的确使用'文件系统'方式,而且他们还活着。这可能是因为他们的SQL客户端与DBMS位于同一台机器上,所以文件传输问题并非无法克服,但这是我最担心的一点。

1

如果文件大小小于1MB,您可以将它们存储在RDBMS中,但也可以考虑将它们存储在文件系统中。请参阅http://technet.microsoft.com/en-us/library/bb933993.aspx

将RDBMS中的整个文件存储在文件系统中的文件与RDBMS中文件路径的引用有什么优势吗?

如果钱等是没有问题的,那么在RDBMS存储是有利的,因为你会得到一个RDBMS的所有益处,加上没有从非关联存储在数据库中引用的文件的开销。

哪种方法应是更快?

RDBMS

什么时候我选择了另一种?

受实际条件所决定的。考虑文件系统,如果文件大于1MB。许多共享托管提供程序不启用FILESTREAM。

会有问题的文件系统是在使用?

我不知道这件事。

1

要添加到什么乔纳森·莱弗勒写道:与BLOB的处理大小固定的对象打交道时,当

DBMS的效率不高,因此,我们可以说,DBMS不“像”大对象。另外,许多DBMS将表外的BLOB存储在独立的存储中。

如果您的目标是归档目的,分开存储文件以便于备份和检索是有意义的。您也可以将文件移动到某些后端存储并使其“脱机”以释放服务器上的空间(如果需要)。