存储大量数据:数据库还是文件系统?

mvb*_*fst 7 database filesystems indexing database-design data-structures

假设我的应用程序创建,存储和检索大量条目(数千万).每个条目具有可变数量的不同数据(例如,一些条目仅具有几个字节,例如ID /标题,而一些条目可具有兆字节的补充数据).每个条目的基本结构相同,采用XML格式.

条目是任意创建和编辑的(最有可能通过附加,而不是重写).

将条目作为单独的文件存储在文件系统中,同时在DB中保留必要的索引集与保存数据库中的所有内容是否有意义?

dan*_*ben 4

这实际上取决于您将如何使用它。数据库可以处理表中的条目比大多数人想象的要多,特别是在适当的索引的情况下。另一方面,如果您不打算使用关系数据库提供的功能,则可能没有太多理由使用它。

好吧,概括得够多了。无论如何,鉴于数据库最终归结为“磁盘上的文件”,我不会太担心“正确的做法”是什么。如果数据库的主要目的只是有效地检索这些文件,我认为保持数据库条目较小并查找文件路径而不是实际数据是完全可以的 - 特别是因为您的文件系统在检索数据方面应该非常有效给定特定位置。

如果您感兴趣,这实际上是搜索引擎的常见数据存储模式 - 索引将存储索引数据和指向磁盘上存储数据的指针,而不是将所有内容存储在索引中。