【问题标题】:BLOB Storage - 100+ GB, MySQL, SQLite, or PostgreSQL + PythonBLOB 存储 - 100+ GB、MySQL、SQLite 或 PostgreSQL + Python
【发布时间】:2010-09-07 20:18:25
【问题描述】:

我有一个简单的应用程序的想法,它将监视一组文件夹,索引它找到的任何文件。 gui 将允许我快速标记新文件并将它们移动到单个数据库中进行存储,并且还提供了一种简单的机制来按标签、名称、文件类型和日期查询数据库。目前我在几个可移动硬盘驱动器上有大约 100+ GB 的文件,数据库至少会那么大。如果可能的话,我想支持嵌入式二进制和文本文档的全文搜索。这将是一个单用户应用程序。

不是想发起一场数据库大战,但哪种开源数据库最适合我?我很确定 SQLLite 不在讨论范围内,但我可能是错的。

【问题讨论】:

    标签: database blob


    【解决方案1】:

    我仍在为自己的一个项目研究此选项,但 CouchDB 可能值得一看。

    【讨论】:

      【解决方案2】:

      为什么要将文件存储在数据库中?只需存储您的元数据和文件名。如果出于某种原因需要将它们复制到新位置,只需将其作为文件系统副本即可。

      一旦您删除文件内容,那么任何有能力的数据库都将能够处理几十万个文件的元数据。

      【讨论】:

        【解决方案3】:

        我的偏好是将文档与元数据一起存储。原因之一是关系完整性。如果没有 db 代理的操作,您将无法轻松移动文件或修改文件。我确信我可以处理这些问题,但它并不像我想要的那样干净,而且我的经验是,如今大多数供应商都可以处理数据库中的大量二进制数据。我想我想知道 PostgreSQL 或 MySQL 在这些领域是否有任何明显的优势,我主要熟悉 Oracle。无论如何,感谢您的回复,如果数据库知道外部文件在哪里,如果我愿意,以后也可以很容易地将文件带入。问题的另一个方面是使用 Python 时是否更容易使用任一数据库。我假设那是一次洗涤。

        【讨论】:

          【解决方案4】:

          我总是讨厌回答“不要”,但最好使用 Lucene (PyLucene) 之类的东西进行索引。几乎总是建议将路径存储在数据库中而不是文件内容中。

          此外,这些数据库引擎都不会将 LOB 存储在单独的数据空间中(它们将嵌入到表的数据空间中),因此这些引擎中的任何一个引擎的性能都应该几乎相同(除了 sqllite)。您需要迁移到 Informix、DB2、SQLServer 或其他工具来处理这种二进制对象。

          【讨论】:

            【解决方案5】:

            几乎所有这些都可以工作(即使 SQLLite 不打算在并发多用户环境中使用,这可能是一个问题......)因为您不想索引实际内容文件。

            唯一的限制因素是给定数据库的最大“数据包”大小(我指的是查询/响应的数据包)。通常这些限制在 2MB 左右,这意味着您的文件必须小于 2MB。当然你可以增加这个限制,但是整个过程效率很低,因为例如要插入一个文件,你必须:

            • 将整个文件读入内存
            • 在查询中转换文件(这通常意味着对其进行十六进制编码 - 因此从一开始就将大小翻倍)
            • 执行生成的查询(这本身意味着 - 对于数据库 - 它必须解析它)

            我会使用一个简单的数据库和使用命名约定存储的相关文件,这使得它们易于查找(例如基于主键)。当然这种设计并不“纯粹”,但性能会好很多,也更容易使用。

            【讨论】:

              【解决方案6】:

              你为什么要浪费时间模拟文件系统应该能够处理的东西?更多存储空间 + grep 是您的答案。

              【讨论】:

              • 嗯,很明显。每个
              猜你喜欢
              • 2012-09-12
              • 2010-11-16
              • 2019-10-22
              • 1970-01-01
              • 1970-01-01
              • 2017-06-20
              • 1970-01-01
              • 2011-04-08
              • 2010-10-12
              相关资源
              最近更新 更多