基于文件的存储与数据库存储

基于文件的存储与数据库存储

我们公司目前在磁盘上存储了大量自动生成的文件,目前有超过 200,000 个文件,其中有 PDF 文件,大小约为 100k - 1M。

我被要求提供一些证据来证明将这些数据存储在文件中与将其存储为数据库记录的优缺点。

我希望我们尽可能将这些数据存储在 MS SQL 或 MySQL db 等中,而不是将 200,000 个文件堆放在一堆本地目录中。

我希望你们能给出一些使用这两种系统的充分理由,这样我就可以权衡差异并提出我的观点。

答案1

说实话,我看不出将这些文档存储在数据库中有什么好处。由于文档不会被更改,因此版本控制系统和文档管理系统都不会增加任何价值。

您真正能做的最好的事情就是将它们存储在单独的服务器上,并使用擅长快速检索的文件系统(可能是 XFS,了解更多)这里这里)。文件夹结构本身的良好组织可能会有所帮助,例如,对于保险索赔,文件夹结构按年份和月份排序;对于保险联系人,文件夹结构按保单号的前几位数字/字符排序。

答案2

将文件存储在面向文档的数据库中有一定的价值。但这完全取决于您如何使用文件、访问文件的频率以及需要多快访问文件。也有一些文档管理系统可能很适合。您需要先详细说明您的用例。

答案3

您当前的存储方案是否存在问题或麻烦?将文件移至数据库的转换成本将不菲。除了切换的痛苦之外,以下是一些需要考虑的问题:

  • 数据一致性:你没有指定正在使用的文件系统/平台,而是指定了数据库可能为单个文件提供更好的完整性检查。

  • 异地恢复:大多数有价值的 DBA 都知道如何使用其数据库的复制功能。

  • 备份:根据情况,您的数据库供应商可能会为您提供备份选项(日志辅助备份、快照、一致性热备份),而您的操作系统可能不会提供。

  • 日志记录/审计:大多数现代数据库的安全功能应该为您提供每个文件的访问者的记录。

  • 数据隐私:在您选择的数据库中加密数据是否比在您的操作系统上加密数据更容易?

从技术上讲,对于我列出的每个要点(例如,rsync、内核级审计、文件系统加密),都有一个基于文件系统/操作系统的解决方案。如果您拥有的足以满足您当前和预计的需求,那么文件系统的简单性是无可比拟的。但是,如果您的组织拥有强大的 DBA 技能和一支薄弱的系统管理团队,那么使用数据库可能更好。如果您的 DBA 已经建立了经过验证的程序来满足您的所有要求,那么决定可能很容易。

答案4

看起来,这不一定是“文件系统”与“数据库”的比较,而可能是数据管理、访问和保护的比较?可能围绕以下方面:

  • 通过复制和/或错误检测/纠正来防止丢失
  • 具有重复数据删除和/或可扩展性的存储管理
  • 客户端可访问性(本机与自定义应用程序/界面)
  • 报告选项

相关内容