Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最佳xml存储引擎_Xml_Storage - Fatal编程技术网

最佳xml存储引擎

最佳xml存储引擎,xml,storage,Xml,Storage,我正在考虑最佳的开源解决方案来存储xml文档,并对其进行有效的进一步查询。数据量将很小。据我所知,原生xml数据库可能是适合我的情况的解决方案。它们显然以高效的方式存储xml文档。学习你的经验会很好。 对正确的解决方案有什么建议吗?您是否有在应用程序中使用xml存储引擎的经验 我们在工作中使用了原生XML服务器。如果您的数据低于大约100-200MB-s,它们就可以了,但是在这之后,我找不到一个合适的服务器来处理数据。我尝试了以下方法: 存在:基于Java的原生XML服务器(开源):对于大文件

我正在考虑最佳的开源解决方案来存储xml文档,并对其进行有效的进一步查询。数据量将很小。据我所知,原生xml数据库可能是适合我的情况的解决方案。它们显然以高效的方式存储xml文档。学习你的经验会很好。
对正确的解决方案有什么建议吗?您是否有在应用程序中使用xml存储引擎的经验

我们在工作中使用了原生XML服务器。如果您的数据低于大约100-200MB-s,它们就可以了,但是在这之后,我找不到一个合适的服务器来处理数据。我尝试了以下方法:

  • 存在:基于Java的原生XML服务器(开源):对于大文件,它通常会占用JVM的内存,然后抛出内存不足异常
  • sedna:C本机XML服务器(开源):可以处理非常大的数据库,但如果您试图从数据库中查询非索引数据,则会出现错误
  • Tamino XML数据库(专有):最早的XML数据库之一,成熟但缺乏对xquery的支持(至少我们正在使用的最新版本对xquery的支持非常差),正如我们所看到的,即使是经过培训的专业人员也无法正确地将其设置得足够快
以下是我的建议:

  • 对于小数据和基于Java的系统,请尝试eXist。它甚至有一个类似SQlite的基于文件的数据库支持,这可能很有用
  • 对于性能重要的中小型数据,请使用sedna。根据我的测试,它是三个中最快的
  • 如果您需要支持,请使用塔米诺。它至少有支持

对于大型数据库(1GB及以上),我不推荐任何一个。eXist通常与一个200MB大小的数据库崩溃。sedna在查询未编入索引的内容时使用1GB大小的数据库崩溃,tamino甚至无法在一次运行中加载500MB的数据,从而导致整个系统崩溃。当然,所有这些系统都在不断发展,所以可能稍晚一点它们就可以安全使用了,但遗憾的是,原生XML数据库仍然不成熟。

您是否研究过主要供应商提供的解决方案,例如。我没有试过,但如果你有这样的预算,肯定值得评估


维基百科也有,您可能希望对其进行评估。

我们谈论的是什么样的数据量?兆字节GB?TB?另一个对我来说非常重要的选项:这些xml存储必须能够在内存中运行,而无需将数据存储在磁盘上。那么eXist是我认为唯一一个可以做到这一点的(并且只有在Java中)。Oracle XML DB也是一个嵌入式解决方案,但我认为它将数据存储在磁盘而不是内存中。Thanx提供了一些有益的建议。是的,我不会存储大量数据,因此我建议应该考虑eXist。那么查询性能、按需获取数据呢?与SQlite等关系数据库相比,它们的性能并没有那么好。Sedna是这三个数据库中最快的,但与关系数据库相比,它仍然很慢。因此,这取决于要存储的数据。如果数据库的模式是“稳定的”,我会将它们转换为关系模型。如果数据库的模式不能在关系数据库中轻松表示,那么选择eXist或sedna。它们可能会稍微慢一点,但是如果您必须查询一些复杂的表达式,那么XQuery在许多方面都优于SQL(在这些情况下,它们可能也会稍微快一点)