exist-db - 开源 XML 数据库的可扩展性

标签 exist-db basex xml-database sedna

我们希望开发一个报告应用程序,该应用程序报告存储在大量 XML 文件中的数据。大约 3,000,000 个文件,大小从 7KB 到 5MB(每个文件符合相同的架构)。我猜大概会有 200GB 的 XML。我正在查看许多开源 XML 数据库(Sedna、BaseX 和 eXist-db),但我不确定这些系统的扩展性如何,我阅读了这三个数据库 here 的比较。这就是我对可扩展性的担忧的起源。

关于我们想要做什么的一些细节是: 我们不会更改任何 XML 文件中的数据,并且每天都会添加新文件。由于我们关心报告查询性能对我们来说很重要,因此添加和索引新文件所需的时间对我们来说并不是一个高优先级。

我想知道是否有人有类似规模使用这些系统的经验?我查看了 BaseX statistics page 并看到了一些相当大的 XML 实例,但没有提到性能。

我们不需要开源产品,MarkLogic 系统看起来可以很好地满足要求,但我很好奇开源产品做了什么。

最佳答案

我认为用 yesno 来回答你的问题是不可能的。从您提供的小细节中很难说明任何有关性能的信息。

性能通常基于您要执行的查询和数据的分布。更不用说,你认为是“可接受的”。

paper you referenced 中,有趣的是,他们声明他们无法在 eXist 2.2 预览版中使用新的范围索引。当然,如果没有这些,他们的表现会差很多。最后他们还说他们会选择 Sedna,因为他们可以克服 Sedna 的问题,我不清楚为什么会这样,即他们是否有可以与 Sedna 一起工作的 C++ 开发人员,但他们没有 Java 开发人员可以与 eXist 或 BaseX 一起使用吗?最后,他们用于测试 eXist 和 BaseX 的 Java 版本相当旧,eXist 的下一个版本(3.0)将只支持 Java 8 和更新版本。

如果您不能将 200GB 的数据存储到 BaseX、eXist 或 Sedna 中,我会感到惊讶,但如果不知道您的数据和您想要执行的查询类型,我无法评论查询性能。

我认为您最好对其中一个或全部进行一次小型试验,其方式与该链接文章没有什么不同。

关于exist-db - 开源 XML 数据库的可扩展性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30085853/

相关文章:

c# - 如何将 xml 导出到数据库 - asp.net

c# - 表示具有相同名称的 n 层深度嵌套 XML 节点的最佳方式?

variable-assignment - XSLTforms 或 betterForm 是否支持变量 (var)?

xml - 全文 Xquery (Lucene/KWIC) 对 "tagged"结果不起作用。 eXist-db 错误?

xforms - 允许对可选 XML 元素进行 XForm 控件

xquery - 在支持多种输出格式的 exist-db 中编写一个 XQuery 脚本

xpath - XQuery 在 baseX 中返回错误

java - 有没有办法在basex中使用saxon作为xquery处理器?

xml - jQuery 循环?克隆?简单地说为什么?

xquery - 使用 xquery 和 FLWOR 在 BaseX 中迭代大型 XML 文档的最有效方法